【问题标题】:Validation error message persists after refreshing the page刷新页面后验证错误消息仍然存在
【发布时间】:2013-02-24 10:46:31
【问题描述】:

我正在努力学习 JSF。

我有一个简单的 Hello.java,带有注释 @ManagedBean @RequestScoped...

在 index.xhtml 我有:

<h:inputText id="username" 
             value="#{hello.name}"
             required="true"
             requiredMessage="A name is required.">
</h:inputText>
<h:commandButton id="submit" value="Submit" action="response">
</h:commandButton>

我的问题是,当我单击提交按钮而不填写名称字段时,我收到错误消息。但是当我刷新页面时,错误消息仍然存在。为什么它不消失?我怎样才能让它消失?

【问题讨论】:

    标签: html validation jsf page-refresh


    【解决方案1】:

    您正在刷新表单提交。所以表单被提交并再次验证。有点理智的浏览器会为此显示警告,例如“您确定要重新发送帖子数据吗?”。你没见过吗?

    无论如何,我不确定您的期望是什么,因为这是同步 POST 表单上完全自然和标准的 HTML/webbrowser 行为(因此与 JSF 完全无关,因为它只是在这个“问题”的上下文中HTML 代码生成器),但是如果您想避免在刷新 POST 请求时重新执行 POST 请求,那么最简单的方法是使其成为异步 POST 请求(通过 ajax)而不是同步请求。这是一个嵌套的问题

    <f:ajax execute="@form" render="@form" />
    

    &lt;h:commandButton&gt; 内。浏览器刷新仅刷新最后一个同步请求,然后将成为初始 GET 请求。

    【讨论】:

      猜你喜欢
      • 2013-07-18
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 2016-09-06
      • 2020-05-01
      相关资源
      最近更新 更多