【发布时间】:2014-09-25 21:36:24
【问题描述】:
我有一个用于验证 jsp 中某些字段的操作。如果此操作返回输入,则会添加相应的字段错误。但是在更正字段并重新提交表格后,这个不会重新提交;即使所有字段都正确,字段错误仍将保持附加。
图一:
我已经提交了带有空姓氏字段的表单。添加了适当的字段错误。
图二:
然后我已经填写了姓氏空白,但是错误消息被卡住并且表格不会重新提交。
验证:
public String validateForm() {
if (name == null || name.equals("")) {
addFieldError("name", "Name is required!");
return INPUT;
}
if (surname == null || surname.equals("")) {
addFieldError("surname", "Surname is required!");
return INPUT;
}
if (username == null || username.equals("")) {
addFieldError("username", "Username is required!");
return INPUT;
}
if (password == null || password.equals("")) {
addFieldError("password", "Password is required!");
return INPUT;
}
if (!passwordCheck.equals(password)) {
addFieldError("password", "Passwords do not match!");
addFieldError("passwordCheck", "");
return INPUT;
} else {
return SUCCESS;
}
}
Struts.xml:
<package name="actions" namespace="/authenticated/admin" extends="struts-default">
<action name="form">
<result>/authenticated/admin/inputAccountSave.jsp</result>
</action>
<action name="register" class="AccountAction" method="createAccount">
<result name="success">/success.jsp</result>
<result name="input">/authenticated/admin/inputAccountSave.jsp
</result>
</action>
</package>
<package name="validations" extends="struts-default">
<action name="validate" class="AccountAction" method="validateForm">
<result name="success" type="redirectAction">
<param name="actionName">register</param>
<param name="name">${name}</param>
<param name="surname">${surname}</param>
<param name="username">${username}</param>
<param name="password">${password}</param>
<param name="role">${role}</param>
</result>
<result name="input">/authenticated/admin/inputAccountSave.jsp
</result>
</action>
</package>
表格:
<s:form name="register" action="validate" >
<s:textfield name="name" label="Name" />
<s:textfield name="surname" label="Surname" />
<s:textfield name="username" label="Username" />
<s:password name="password" label="Password" />
<s:password name="passwordCheck" label="Confirm password" />
<s:select name="role" label="Role" list="{'MANAGER', 'ADMIN'}"></s:select>
<s:submit />
</s:form>
谢谢
【问题讨论】:
标签: java forms jsp validation struts2