Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何在JSF2.0页面中检测字段值的更改_Jsf 2 - Fatal编程技术网

Jsf 2 如何在JSF2.0页面中检测字段值的更改

Jsf 2 如何在JSF2.0页面中检测字段值的更改,jsf-2,Jsf 2,我正在使用JSF2.0开发一个相当大和复杂的页面,其中包含许多字段。这将是退出命令按钮在按钮的页面,当任何用户选择退出选项,我需要检测用户是否已输入任何值的一个领域的网页 我现在使用对支持bean中的每个字段值进行空检查来完成这项工作,但这是一项非常繁琐且重复的工作。我想知道有什么聪明的解决办法吗??我们将非常感谢您的帮助 提前感谢。您的字段值可能链接到支持bean的属性。更改值时,将调用setter。在setter中,如果值实际发生更改,可以将bean的布尔字段设置为true public v

我正在使用JSF2.0开发一个相当大和复杂的页面,其中包含许多字段。这将是退出命令按钮在按钮的页面,当任何用户选择退出选项,我需要检测用户是否已输入任何值的一个领域的网页

我现在使用对支持bean中的每个字段值进行空检查来完成这项工作,但这是一项非常繁琐且重复的工作。我想知道有什么聪明的解决办法吗??我们将非常感谢您的帮助


提前感谢。

您的字段值可能链接到支持bean的属性。更改值时,将调用setter。在setter中,如果值实际发生更改,可以将bean的布尔字段设置为true

public void setPropertyX(Type newValue) {
    if(!newValue.equals(this.X)) {
        this.X = newValue;
        this.fieldChanged = true;
    }
}

要使其正常工作,您至少应该在
@ViewScope

中使用
valueChangeListener
属性

<h:inputText ... valueChangeListener="#{bean.changed}" />

您是在寻找客户端解决方案还是服务器端解决方案?
public void changed(ValueChangeEvent event) {
    this.changed = true;
}