[英]Struts 2 validation using annotation
我正在探索 Struts 2 中的注释。尝试使用@RequiredFieldValidator
的简单验证没有发生,表单提交空字段。 我无法弄清楚,有人可以帮助我。
我的 JSP 页面:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
<body>
<h2>Struts 2 - Login Application</h2>
<s:actionerror />
<s:fielderror />
<s:form action="login" method="post" namespace="/" >
<s:textfield name="username" key="label.username" size="20" />
<s:password name="password" key="label.password" size="20" />
<s:submit />
</s:form>
</body>
</html>
我的动作课:
@Namespace("/")
@Results({
@Result(name="success", location="/Welcome.jsp"),
@Result(name="error", location="/Login.jsp")
})
public class LoginAction extends ActionSupport implements ValidationAware {
/**
*
*/
private static final long serialVersionUID = 5271055255991498361L;
private String username;
private String password;
public String execute() {
if (this.username.equals("admin")
&& this.password.equals("admin123")) {
return "success";
} else {
return "error";
}
}
@RequiredFieldValidator( message = "The name is required" )
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@RequiredFieldValidator( message = "The password is required" )
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
您应该像这样将验证器注释放在 setter 上
@RequiredStringValidator(type= ValidatorType.FIELD, message = "The name is required.")
public void setUsername(String username) {
this.username = username;
}
RequiredFieldValidator检查null
值,但如果字符串字段为null
则字符串字段不为空,请使用RequiredStringValidator 。 此外,您应该在操作上运行validation
拦截器。
另外,我认为您应该仔细阅读框架使用的 类型转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.