如何检测JSF 2.0页面中的字段值更改

use*_*373 5 jsf-2

我正在使用JSF 2.0开发一个包含大量字段的相当大而复杂的页面.将在页面的按钮处退出命令按钮,当用户选择退出选项时,我需要检测用户是否在页面的某个字段上输入了任何值.

我正在使用支持bean中的每个字段值的空检查来执行此操作,但这是一个非常繁琐和重复的工作.我想知道是否有任何智能解决方案?任何帮助将受到高度赞赏.

提前致谢.

Bal*_*usC 11

为此,该valueChangeListener属性应该被使用.

<h:inputText ... valueChangeListener="#{bean.changed}" />
Run Code Online (Sandbox Code Playgroud)

public void changed(ValueChangeEvent event) {
    this.changed = true;
}
Run Code Online (Sandbox Code Playgroud)


Bjö*_*lex 1

您的字段值可能与支持 bean 的属性相关联。当值更改时,将调用 setter。在 setter 内部,如果值实际发生变化,您可以将 bean 的布尔字段设置为 true。

public void setPropertyX(Type newValue) {
    if(!newValue.equals(this.X)) {
        this.X = newValue;
        this.fieldChanged = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

为此,您的 backing-bean 应该至少位于@ViewScope.