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.

你可能感兴趣的:(struct)