2011-02-24 61 views
2

我得到這個:參數發送到控制器

<a4j:commandLink action="#{searchBean.someMethod}" reRender="search"><span><h:graphicImage value="/home/img/icons/red.gif" width="12" height="12" /> Street</span></a4j:commandLink> 

而且在我的豆,我得到了一個方法:

public void someMethod(String string){ 
    doStruff(); 
} 

是否有可能以一個String作爲參數發送給我的方法?

回答

3

您可以<f:param>發送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,你不需要自己檢索這個param。 a4j:actionparam自動執行分配。