Jsf 2 通过同名的f:viewParam绑定使用f:param中的值更新Bean

Jsf 2 通过同名的f:viewParam绑定使用f:param中的值更新Bean,jsf-2,mojarra,viewparams,Jsf 2,Mojarra,Viewparams,使用此代码: <f:metadata> <f:viewParam name="aParameter" value="#{myBean.aParameter}" /> </f:metadata> ... <h:commandLink value="commandLink" action="#{myBean.navigate()}"> <f:param name="aParameter" value="TEST" />

使用此代码:

<f:metadata>
   <f:viewParam name="aParameter" value="#{myBean.aParameter}" /> 
</f:metadata>

...

<h:commandLink  value="commandLink" action="#{myBean.navigate()}">
   <f:param name="aParameter" value="TEST" />
</h:commandLink>

...
当我使用commandLink提交时,myBean.apaparameter由viewParam(在调试中看到)更新,其值在更新_模型阶段来自f:param

这正常吗

是的,我知道viewParam和param有相同的名字,我没有选择


我使用Mojarra 2.1.27

我想我拼凑出了它正常的原因:

  • 到服务器(我不这么认为),并且是requestParametersMap的一部分
  • ,即使是回邮
  • f:viewParam然后使用requestParametersMap中的内容更新其值
  • 如果requestParametersMap恰好有与viewParam名称对应的键,则viewParam将执行其操作(使用该值更新模型)
所以。。。这很正常。我将使用无状态viewParam(比如)修改这种行为:回发没有更新,没有更多问题



但我不知道为什么我的问题出现在mojarra 2.1.27上,而在2.1.25上似乎一切正常。嗯……

是的,这很正常。这里到底有什么问题?viewParam使用url中的一个值绑定myBean.apaParameter,f:param是commandLink的子项,我还没有发现两者都可以链接的线索。你能给我指一份这样写的推荐信吗?