2014-03-04 17 views
0

有了这个代码:豆更新具有值从步骤f:通过同名˚FPARAM:viewParam结合

<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.aParameter 由viewParam更新(在调试看到的)与来自UPDATE_MODEL阶段中的f:param的值

这是正常的吗?

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

我用钻嘴鱼科2.1.27

+1

是的,这是正常的。这里关心的是什么? – kolossus

+0

那么,viewParam绑定myBean.aParameter与来自url的值,f:param是commandLink的一个孩子,我还没有找到一个线索,他们都可以链接。你能指出我这样说的参考吗? – gillup

回答

0

我想我拼凑出它为什么正常的原因:

  • ​​到服务器(我不这么认为),是部分requestParametersMap
  • f:viewParam's do the entire JSF livecycle,甚至在回发
  • F:viewParam的再更新自己的价值观,有什么在requestParametersMap
  • 如果requestParametersMap恰好有对应viewParam的名字按键,viewParam做它的事情(使用该值更新模型)

所以... 这是正常。我将使用无状态viewParam(如OmniFaces' o:viewParam)修改此行为:无回传更新,没有更多问题!


但我不知道为什么我的问题与mojarra 2.1.27出现,而一切似乎罚款与2.1.25。那么...