繁体   English   中英

通过AJAX进行JSF验证而无需更新模型

[英]JSF Validation via AJAX without updating the model

我已经通过JSF完成了一个页面,用户可以在其中输入一些值。 如果用户输入正确,则可以单击提交按钮,该按钮将使用新值更新模型。

我想要实现的目标是:我希望每次用户输入符号到输入字段时都触发输入验证。 但就在这个时候,模型应该被更新。 仅当用户单击提交按钮时,才应更新模型。 我希望这种行为可以带来更好的用户体验。 用户应具有例如按浏览器中的“后退按钮”的能力,并且他的更改未附加到模型上。 我也希望用户在输入时看到输入的废话。

目前,我的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隐式入侵。

幸运的是,您提到了XY问题的X,因此可以合理地回答:

我希望这种行为可以带来更好的用户体验。 用户应该具有例如在浏览器中按下“后退”按钮的能力,并且他的更改未附加到模型上

为了解决这个问题,只需指示浏览器不要缓存动态页面。 可以在以下问答中找到详细信息: 在JSF Web应用程序上避免后退按钮 您还需要确保为其所保存的数据选择正确的bean作用域。 即不要将视图范围的数据放在会话范围的bean中。 这些表单bean最多只能在范围内查看。 另请参见如何选择正确的bean作用域?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM