繁体   English   中英

使用javascript var或其他标记值从JSF支持bean调用函数

[英]Call function from JSF backing bean with javascript var or other tag value

我已经在这里看到了许多答案,但没有一个能够满足我的需求,我需要以不提交表单的方式执行此操作,并使用隐藏按钮方法(使用ajax调用)并调用click()事件从javascript,该方法被调用,但我需要在方法中传递一个int,我该怎么做?

我可以从javascript var或隐藏的输入文本字段中获取int,只是不知道如何做到这一点,任何人都可以帮忙吗?

JSF代码:

<script type="text/javascript" language="javascript">
    var position;
</script>

<h:inputHidden id="hiddenHolder" value="#{backingBean.beanPosition}" />

<h:commandButton id="hiddenButton" style="display: none;">
    <f:ajax listener="#{backingBean.testMethod(need to send here javascript var or inputHidden value)}"/>
</h:commandButton>

豆功能;

public void testMethod(int i){
    //do stuff
}

当我从backBean中未反映的javascript更改hiddenHolder值时,我想它需要提交才能工作。 这就是我需要在方法调用中传递值的原因。

当我从backBean中没有反映的javascript更改hiddenHolder值时

你确实没有告诉JSF处理输入值。 应该使用<f:ajax execute> ,默认为@this (当前输入或命令组件)。 由于<f:ajax>包含在命令组件中,因此只会处理命令组件本身(其操作)。

因此,只需显示指定输入值以及命令组件:

<f:ajax execute="@this hiddenHolder" ... />

或者,如果这一切都在同一个表单中,请使用@form

<f:ajax execute="@form" ... />

也可以看看:

使用OmniFaces命令脚本 工作得很好(或者如果你已经使用过,请使用PrimeFaces remoteCommand)

要防止提交表单的其余部分,请使用execute属性,例如f:ajax调用(p:remoteCommand上的进程属性)或使用单独的表单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM