【发布时间】:2014-01-03 02:18:37
【问题描述】:
我有页面 my.xhtml:
<f:metadata>
<f:viewParam name="id"/>
</f:metadata>
...
<h:form>
Current id is: "#{id}"
<h:commandButton action="#{bean.doSomething}" value="Do some logic..">
<f:param name="id" value="#{id}"/>
</h:commandButton>
</h:form>
和 Bean.java:
@ManagedBean
@ViewScoped
public class Bean {
....
public void doSomething(){
//do some logick, don't use id parameter
}
}
当我第一次进入 id=10 的页面时,我可以在页面 Current id is: "10". 上看到。
当我点击按钮页面重新加载时,我可以再次看到页面Current id is: "10".。
但是当我第三次点击按钮时,我可以在页面Current id is: "". 上看到,我失去了id 参数,我不明白为什么?
我知道我可以通过在 bean 中保存参数值来做到这一点
(通过添加到f:viewParam:
<f:metadata>
<f:viewParam name="id" value="#{bean.value}/>
</f:metadata>
),但是我可以在不保存 bean 中的参数值的情况下执行此操作吗?
【问题讨论】:
标签: jsf jsf-2 parameters navigation