Richfaces 3.2.0.GA и XHTML как разметка
Вы можете использовать javascript для вызова метода a4j: js, который inturn вызывает метод действия из управляемого компонента.
Параметр, который вам нужно передать, может быть установлен в скрытую переменную, которая при установке установит значение переменной java в вашем бине.
<script>
function onButtonClick(){
$("#yourValue").val("value");
actionListenerMethod();
}
</script>
<a4j:jsFunction name="actionListenerMethod"
actionListener="#{yourManagedBean.actionMethod}"
oncomplete="scriptOnComplete();">
</a4j:jsFunction>
<h:inputHidden id="yourValue"
value="#{yourManagedBean.yourValue}" />
Управляемый компонент:
public void actionMethod(ActionEvent event){
if(yourValue == "something"){
/*your action goes here*/
}
}
В противном случае вы можете обойти эту скрытую переменную с помощью параметра действия
<script>
function onButtonClick(){
actionListenerMethod("value");
}
</script>
<a4j:jsFunction name="actionListenerMethod"
actionListener="#{yourManagedBean.actionMethod}"
oncomplete="scriptOnComplete();">
<a4j:actionparam name="param1"
assignTo="#{yourManagedBean.yourValue}" />
</a4j:jsFunction>
В последнем случае параметр действия может быть установлен только после того, как управляемый бин завершен, в этом случае вы можете использовать атрибут действия для вызова метода действия вместо слушателя действия.
Это поможет вам установить параметр и затем вызвать метод действия.
<a4j:jsFunction name="actionListenerMethod"
action="#{yourManagedBean.actionMethod}"
oncomplete="scriptOnComplete();">
<a4j:actionparam name="param1"
assignTo="#{yourManagedBean.yourValue}" />
</a4j:jsFunction>