验证方法重置 Struts2 中的表单字段值
The validate method resets the form field values in Struts2
我有一个包含用户和密码的 User
bean 以及验证用户长度是否大于 0
的验证方法。当我提交表单时,如果出现错误,所有值都会从表单中消失。如果没有 <s:textfield>.
,我找不到解决这个问题的方法
public class UserController extends ActionSupport implements ModelDriven<User> {
private static final long serialVersionUID = 5538926739066161807L;
private User userBean = new User();
private UserDAO userDAO = new UserDAO();
public User getUserBean() {
return userBean;
}
public void setUserBean(User userBean) {
this.userBean = userBean;
}
public void validate() {
String user= userBean.getUsername();
String password= userBean.getPassword();
if ("".equals(user) || "".equals(password)) {
addActionError(getText("userInvalid"));
}
}
}
JSP:
<s:form action="createUser.action" method="POST">
<div class="form-group">
<label for="user">${action.getText('user')}</label> <input class="form-control" name="userBean.username" id="user"
placeholder="Enter the user">
</div>
<div class="form-group">
<label for="user">${action.getText('password')}</label> <input class="form-control" name="userBean.password" id="password"
placeholder="Enter the password">
</div>
<s:submit key="home.attractions.update" cssClass="btn btn-default" />
</s:form>
您可以使用 property
标签将值输出到输入字段
<input type="text" class="form-control" name="userBean.username" id="user"
placeholder="Enter the user" value="<s:property value='%{userBean.username}'/>">
我没有找到任何解决方案,所以唯一的方法是使用 S2 标签:
<s:textfield name="userBean.userName" key="register.username"
cssClass="form-control" placeholder="Enter the user" />
<s:password name="userBean.password" key="register.password"
cssClass="form-control margin10Top" placeholder="Enter the password" />
我有一个包含用户和密码的 User
bean 以及验证用户长度是否大于 0
的验证方法。当我提交表单时,如果出现错误,所有值都会从表单中消失。如果没有 <s:textfield>.
public class UserController extends ActionSupport implements ModelDriven<User> {
private static final long serialVersionUID = 5538926739066161807L;
private User userBean = new User();
private UserDAO userDAO = new UserDAO();
public User getUserBean() {
return userBean;
}
public void setUserBean(User userBean) {
this.userBean = userBean;
}
public void validate() {
String user= userBean.getUsername();
String password= userBean.getPassword();
if ("".equals(user) || "".equals(password)) {
addActionError(getText("userInvalid"));
}
}
}
JSP:
<s:form action="createUser.action" method="POST">
<div class="form-group">
<label for="user">${action.getText('user')}</label> <input class="form-control" name="userBean.username" id="user"
placeholder="Enter the user">
</div>
<div class="form-group">
<label for="user">${action.getText('password')}</label> <input class="form-control" name="userBean.password" id="password"
placeholder="Enter the password">
</div>
<s:submit key="home.attractions.update" cssClass="btn btn-default" />
</s:form>
您可以使用 property
标签将值输出到输入字段
<input type="text" class="form-control" name="userBean.username" id="user"
placeholder="Enter the user" value="<s:property value='%{userBean.username}'/>">
我没有找到任何解决方案,所以唯一的方法是使用 S2 标签:
<s:textfield name="userBean.userName" key="register.username"
cssClass="form-control" placeholder="Enter the user" />
<s:password name="userBean.password" key="register.password"
cssClass="form-control margin10Top" placeholder="Enter the password" />