2012-03-09 98 views
0

我有一个名为page1.jsf的页面,其中包含一个参数。我有一个命令按钮,其中包含参数。点击按钮后,它必须返回到page1.jsf以及我传递的任何参数。JSF 2.0将参数传递给同一页面

<h:commandButton action="#{myBean.DoSthng}" value="Something" > 
<f:param name="p1" value="sthng"></f:param> 
</h:commandButton> 

如何将此参数传递给page1.jsf本身?

在faces-config.xml中 - 管理豆,我将它设置这样

<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> 

,这是给我的错误。

你能帮我吗?

EDIT

从第1页我必须从一个操作来辅助bean传递值。支持bean应该将我重定向回page1,但内容不同!

+1

可否请您解释'将此参数传递给page1.jsf本身?' – 2012-03-09 11:38:34

+0

@JigarJoshi编辑问题,再次查询 – sameer 2012-03-09 11:43:03

+0

还是不清楚,你的意思是传递像'page1.jsf?param = val'这样的参数吗? – 2012-03-09 11:45:18

回答

0

你把隐藏字段您的PARAM,这将是可用的

<input type="hidden" id="sl" name="sl" value="#{param.sl}"/> 

然后你就可以使用它

${param.sl} 
+0

没有使用隐藏字段,只是使用$(param.s1)..它的工作,谢谢队友我得到循环错误:) – sameer 2012-03-11 04:01:25

0

从页面正在拨打的是action所以在返回你可以做以下

return "someView.jsf?param=val&faces-redirect=true" 
+0

所以我已经正确地将参数传递给我的页面? – sameer 2012-03-09 11:55:56

+0

那么你想访问页面上的参数,或者你想传递参数到页面的行动? – 2012-03-09 11:57:22

+0

请参阅编辑 – sameer 2012-03-09 12:07:06

1

尽管我不太清楚你想达到什么目的, D使用的f:setPropertyActionListener

<h:commandButton action="#{myBean.DoSthng}" value="Something" > 
    <f:setPropertyActionListener target="#{myBean.p1}" value="something" /> 
</h:commandButton> 

这将设置后台bean的属性,如果你从你的操作方法返回null(或者如果它是无效的)当前页面应该反映到您的支持bean所做的更改。