Jsf 通过javascript在控制器管理的bean中调用操作方法
为了减少状态,我正在尝试减少我的网页上commandButtons的数量。(我在20个项目的长列表下显示了大量commandButtons(6*20=120个commandButtons))。因此,我试图找到一种方法,通过javascript,我可以传递参数&调用ManagedBean控制器类中的action方法。有没有办法从javascript调用动作方法并将参数传递给它们?Richfaces 3.2.0.GA和XHTML作为标记 您可以使用javascript调用a4j:js方法,inturn从托管bean调用action方法。 您需要传递的参数可以设置为一个隐藏变量,当设置该变量时,它会将值设置为bean中的java变量Jsf 通过javascript在控制器管理的bean中调用操作方法,jsf,Jsf,为了减少状态,我正在尝试减少我的网页上commandButtons的数量。(我在20个项目的长列表下显示了大量commandButtons(6*20=120个commandButtons))。因此,我试图找到一种方法,通过javascript,我可以传递参数&调用ManagedBean控制器类中的action方法。有没有办法从javascript调用动作方法并将参数传递给它们?Richfaces 3.2.0.GA和XHTML作为标记 您可以使用javascript调用a4j:js方法,intur
<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}" />
否则,您可以使用action param绕过此隐藏变量
<script>
function onButtonClick(){
actionListenerMethod("value");
}
</script>
<a4j:jsFunction name="actionListenerMethod"
actionListener="#{yourManagedBean.actionMethod}"
oncomplete="scriptOnComplete();">
<a4j:actionparam name="param1"
assignTo="#{yourManagedBean.yourValue}" />
</a4j:jsFunction>
函数onButtonClick(){
actionListenerMethod(“值”);
}
在后一种情况下,操作参数可能只有在管理bean完成后才能设置,在这种情况下,您可以使用action atribute来调用您的操作方法,而不是操作侦听器。
这将帮助您设置参数,然后调用操作方法
<a4j:jsFunction name="actionListenerMethod"
action="#{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>