将参数发送到Controller

时间:2011-02-24 20:22:42

标签: java jsf parameters richfaces ajax4jsf

我明白了:

<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();
}

是否可以将String作为参数发送到我的方法?

2 个答案:

答案 0 :(得分:3)

您可以发送<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");
}

答案 1 :(得分:2)

你也可以用a4j:actionparam来做。

<a4j:commandLink>
   <a4j:actionparam name="p1" value="hello"/>
</a4j:commandLink>

在bean中你只需要一个getter / setter,你不需要自己检索param。 a4j:actionparam自动完成赋值。