小编Fer*_*ago的帖子

在Struts 2中对特定字段进行手动验证

比如我有一个Action叫班UsersAction,我有这样一些方法: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"));
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是此解决方案仅在调用注册操作时起作用,无论如何它在登录或注销时都不起作用,因为它将检查字段是否为空或电子邮件是否正确并始终会出错.好吧,对于注销的解决办法是添加@SkipValidation在其上方标注,但我不知道如何告诉它,登录只有2场username,并password和它不是必要检查emailphone太.我不想为每个动作部分写一个Action类,因为Struts 2的目的不是这个.

java validation annotations struts2

5
推荐指数
1
解决办法
1472
查看次数

标签 统计

annotations ×1

java ×1

struts2 ×1

validation ×1