我有一个表单在视图“createDbUser.xhtml”中,其中包含一些输入文本和类似于以下的验证:
dbUserManager是一个视图作用域的托管bean,其中包含如下的createUser()方法:
当我在验证失败的情况下(例如,我没有输入密码或用户名)按下浏览器的刷新按钮时,我得到了“确认重新提交表单”的提示,而不是期望的行为,即重新加载页面并清除输入内容。
我已经了解了后重定向获取模式,并因此向createuser()的结果添加了带有“faces-redirect=true”参数的返回语句。
我猜当验证失败时,我们永远不会到达createuser(),因此也无法执行返回语句。这就是问题的原因。但我不知道该如何解决它。
如果有人能帮助解决这个问题,那就太好了。
谢谢
<h:form>
<h:inputText id="user_name" value="#{dbUserManager.userName}" required="true" requiredMessage="User name is required." />
<h:inputSecret id="password" value="#{dbUserManager.password}" required="true" requiredMessage="Password is required." />
<h:commandButton id="create_user" value="Create user" action="#{dbUserManager.createUser()}" />
</h:form>
dbUserManager是一个视图作用域的托管bean,其中包含如下的createUser()方法:
public String createUser()
{
...
// here I do some checks and add the new user to database
...
return "/restricted/createDbUser.xhtml?faces-redirect=true";
}
当我在验证失败的情况下(例如,我没有输入密码或用户名)按下浏览器的刷新按钮时,我得到了“确认重新提交表单”的提示,而不是期望的行为,即重新加载页面并清除输入内容。
我已经了解了后重定向获取模式,并因此向createuser()的结果添加了带有“faces-redirect=true”参数的返回语句。
我猜当验证失败时,我们永远不会到达createuser(),因此也无法执行返回语句。这就是问题的原因。但我不知道该如何解决它。
如果有人能帮助解决这个问题,那就太好了。
谢谢