我的网络应用程序中有多个视图。在每个视图中,我需要检查"更改事件"。一旦值改变(没有提交),我想在我的bean中设置一个布尔值为true。这可能吗?有许多输入,因此每个组件都会令人讨厌。
我正在使用Wildyfly服务器并使用Primefaces 6.2,JSF 2.2。
谢谢和问候!
答案 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>