关于价值变化的JSF Open对话

时间:2018-05-29 13:43:24

标签: jsf events primefaces

我的网络应用程序中有多个视图。在每个视图中,我需要检查"更改事件"。一旦值改变(没有提交),我想在我的bean中设置一个布尔值为true。这可能吗?有许多输入,因此每个组件都会令人讨厌。

我正在使用Wildyfly服务器并使用Primefaces 6.2,JSF 2.2。

谢谢和问候!

1 个答案:

答案 0 :(得分:0)

我认为可以使用jquery + remote命令实现,例如:

 <script type="text/javascript">
             $(document).ready(function () {
                 $(".ui-input").on('change', function (event) {
                    setBooleanValue()
                 });
             });

         </script>

然后是remoteCommand,它将在托管bean上触发一个负责设置布尔值的方法:

    <h:form>
       <p:remoteCommand name="setBooleanValue" action="#{myBeann.callMethodToSetBoolean}"/>
    </h:form>

将在每个(primefaces)输入更改时调用remoteCommand。

此外,如果您在页面上有 ajax 更新,则需要在ajax调用之后在输入上重新注册jquery更改事件:

<script type="text/javascript">
    $(document).ready(function () {
        $(".ui-input").on('change', function (event) {
            setBooleanValue()
        });
    });

    $(document).on("pfAjaxComplete", function () {
        $(".ui-input").on('change', function (event) {
            setBooleanValue()
        });
    });

</script>