我有一个名为page1.jsf的页面,其中包含一个参数。我有一个包含参数的命令按钮。单击该按钮时,它必须与我传递的任何参数一起返回page1.jsf。
<h:commandButton action="#{myBean.DoSthng}" value="Something" >
<f:param name="p1" value="sthng"></f:param>
</h:commandButton>
我如何将此参数传递给page1.jsf本身?
在faces-config.xml - 托管Bean中,我将其设置为
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>com.MyBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>p1</property-name>
<value>#{myBean.p1}</value>
</managed-property>
</managed-bean>
这给了我一个错误。
请大家帮助我。
修改
从第1页开始,我必须将操作中的值传递给辅助bean。支持bean应该将我重定向回page1,但内容不同!
答案 0 :(得分:1)
虽然我不太确定您要实现的目标,但您可以使用f:setPropertyActionListener
:
<h:commandButton action="#{myBean.DoSthng}" value="Something" >
<f:setPropertyActionListener target="#{myBean.p1}" value="something" />
</h:commandButton>
这将设置支持bean属性,如果从action方法返回null(或者如果它是void),则当前页面应该反映对辅助bean所做的更改。
答案 1 :(得分:0)
在您正在呼叫action
的页面中,所以在返回时您可以执行以下操作
return "someView.jsf?param=val&faces-redirect=true"
答案 2 :(得分:0)
你把你的参数放在隐藏的字段中,它将可用
<input type="hidden" id="sl" name="sl" value="#{param.sl}"/>
然后你可以使用它
${param.sl}