[英]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.