struct2(六) 为表单添加验证

简介

为表单添加验证

添加校验的方法:

1. first name 不能为null

2. Email address 不能为null

3. age 必须大于18岁

为了在用户提交的时候,能够校验这个表单,我们必须在Action register 中定义一个方法:

validate method

@Override
    public void validate() {
        if (personBean.getFirstName() == null ||
                personBean.getFirstName().length() == 0) {
            addFieldError("personBean.firstName", "First name is required.");
        }

        if (personBean.getEmail() == null ||
                personBean.getEmail().length() == 0) {
            addFieldError("personBean.email", "Email is required.");
        }

        if (personBean.getEmail() != null &&
                !personBean.getEmail().matches(
                        "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$")) {
            addFieldError("personBean.email", "Email format must be right.");
        }
        
        if (personBean.getAge() < 18) {
            addFieldError("personBean.age",
                    "Age is required and must be 18 or older");
        }

    }

添加这个方法,准确的说是重载了这个方法以后中,我们的返回逻辑还需要修改,因为如果校验失败,Action 返回的是input,所以我们需要在structs.xml增加校验失败的配置信息。

<result name="input">/register.jsp</result>

测试:

image

更多的校验见: Validation.

原文地址:https://www.cnblogs.com/zhailzh/p/3990707.html