通过AJAX进行JSF验证,而不更新模型



我通过JSF做了一个页面,用户可以在表单中输入一些值。如果用户对输入很满意,他可以单击提交按钮,用新值更新模型。

我试图实现的是:我希望每次用户在输入字段中输入一个符号时都能触发输入的验证。但此时,应NOT更新模型。只有当用户单击提交按钮时,才应更新模型。我希望这种行为能带来更好的用户体验。用户应该能够按下浏览器中的后退按钮,并且他的更改不会附加到模型中。我还希望用户在输入时看到,如果他输入了一些废话。

目前我的JSF文件如下:

    <h:inputText
        required="true"
        requiredMessage="Please enter a value."
        id="input_value" value="#{myBean.myValue}"
        styleClass="input"
        validatorMessage="Please enter a value." >
        <f:ajax 
            event="keyup"
            execute="input_value"
            render="input_value"/>
    </h:inputText>

每当用户在输入字段中输入一个符号时,就会触发验证。但它也更新了模型。这不是我想要的。

这是不可能的。至少在JSF impl中没有黑客攻击。

幸运的是,你提到了XY问题的X,所以这个问题可以得到合理的回答:

我希望这种行为能带来更好的用户体验。用户应该能够按下浏览器中的后退按钮,并且他的更改不会附加到型号

要解决这个问题,只需指示浏览器永远不要缓存动态页面。细节可以在这个问答中找到;A: 避免JSF web应用程序上的后退按钮。您还需要确保为它所保存的数据选择了正确的bean作用域。也就是说,不要将视图范围的数据放在会话范围的bean中。这些表单bean最多只能在视图范围内。另请参阅如何选择正确的bean作用域?

相关内容

  • 没有找到相关文章

最新更新