【发布时间】:2013-06-25 17:41:50
【问题描述】:
例如,我有一个名为 UsersAction 的 Action 类,其中我有一些方法,例如:login、logout、register 等等。
我写了validate()方法如下:
@Override
public void validate() {
if ("".equals(username)) {
addFieldError("username", getText("username.required"));
}
if ("".equals(email)) {
addFieldError("email", getText("email.required"));
} else if (!Utils.isValidEmail(email)) {
addFieldError("email", getText("invalid.email.address"));
}
if ("".equals(phone)) {
addFieldError("phone", getText("phone.required"));
}
if ("".equals(password)) {
addFieldError("password", getText("password.required"));
}
}
问题是这个解决方案只有在调用注册操作时才有效,无论如何它在登录或注销时不起作用,因为它会检查字段是否为空或电子邮件是否正确并且总是会出错。好的,注销的解决方案是在其上方添加@SkipValidation注释,但我不知道如何告诉它登录只有2个字段username和password,并且没有必要检查email还有phone。我不想部分地为每个动作编写一个动作类,因为 Struts 2 的目的不是这个。
【问题讨论】:
标签: java validation struts2 annotations