【问题标题】:Sending parameter to a Controller向控制器发送参数
【发布时间】:2011-07-03 20:35:06
【问题描述】:
我知道了:
<a4j:commandLink action="#{searchBean.someMethod}" reRender="search"><span><h:graphicImage value="/home/img/icons/red.gif" width="12" height="12" /> Street</span></a4j:commandLink>
在我的 Bean 上,我得到了一个方法:
public void someMethod(String string){
doStruff();
}
是否可以将字符串作为参数发送给我的方法?
【问题讨论】:
标签:
java
jsf
parameters
richfaces
ajax4jsf
【解决方案1】:
您可以像这样使用<f:param> 发送参数
<a4j:commandLink action="#{searchBean.someMethod}" reRender="search">
<span>
<h:graphicImage value="/home/img/icons/red.gif" width="12" height="12" />Street
</span>
<f:param name="stringParam" value="someString" />
</a4j:commandLink>
然后使用ActionEvent 将其放入您的方法中
public void someMethod(ActionEvent actionEvent) {
String s = (String) actionEvent.getComponent().getAttributes().get("stringParam");
}
【解决方案2】:
您也可以使用 a4j:actionparam 来完成。
<a4j:commandLink>
<a4j:actionparam name="p1" value="hello"/>
</a4j:commandLink>
在 bean 中您只需要一个 getter/setter,您不需要自己检索参数。 a4j:actionparam 自动执行分配。