zoukankan      html  css  js  c++  java
  • struts2 表单验证

    表单验证有两种方式,代码验证和xml配置验证器验证。每种方法都可以设置全局验证和单个方法验证。感觉单个方法用的多一点。

    例子:用户注册,进行验证。表单如下

    <!--设置错误显示格式-->

    <style type="text/css">
    ul {
    display: inline-block;
    }
    ul li{
    display: inlin;
    color: red;
    }
    </style>

    。。。。。。


    <form action="${pageContext.servletContext.contextPath }/User_register.do" method="post"> <table align="center" border="1" cellpadding="5" cellspacing="0"> <tr> <th>用户名:</th> <td><input type="text" name="user.uname"><s:fielderror fieldName="user.uname"></s:fielderror></td> </tr> <tr> <th>年龄:</th> <td><input type="text" name="user.uage"></td> </tr> <tr> <th>性别:</th> <td><input type="text" name="user.ugender"></td> </tr> <tr> <th>生日:</th> <td><input type="text" name="user.ubirthday"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="提交" /> </td> </tr> </table> </form>

    struts.xml配置信息

    <package name="Userpkg" extends="struts-default">
            <action name="User_*" class="com.huitong.action.UserAction" method="{1}">
                <result name="success">/index.jsp</result>
                <result name="input">/register.jsp</result>  //如果验证有错误,会返回input,此处是让其跳转到注册页面
            </action>
        </package>

    方式一、代码验证,主要方法是:ActionSupport.validate,该方法是对全局进行验证。

    如果想要对某一方法进行验证,方法名命名规则:validate+方法名,方法名首字母大写。

    例如:我写的方法是

        public String register(){
            
            System.out.println(user);
            return SUCCESS;
        }

    那么要验证方法名是:validateRegister,简单实现如下

        public void validateRegister() {
            if(user.getUname() == null || "".equals(user.getUname().trim())){
                super.addFieldError("username", "用户名不能为空!");
                return;
            }
            if(user.getUgender()==null || "".equals(user.getUgender().trim())){
                super.addFieldError("genderempty", "性别不能为空!");
                return;
            }        
            
        }

    方式二:xml验证,struts2提供的验证器可以在xwork2/validator/validators/default.xml文件中查找。配置文件的书写格式查看/xwork-validator-1.0.3.dtd

    配置文件名书写规则:ActionClassName-action name-validation.xml,如果是全局的验证就是ActionClassName-validation.xml。

    简单例子如下:文件名是:/webappstruts3/src/com/huitong/action/UserAction-User_register-validation.xml

    注意:该配置文件是和相应的action文件在同一个目录中。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC
              "-//Apache Struts//XWork Validator 1.0.3//EN"
              "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
    <validators>
        <field name="user.uname">
            <field-validator type="requiredstring" >
                <message>用户名不能为空</message>
            </field-validator>
        </field>
        
    </validators>
  • 相关阅读:
    文件操作小练习
    阶段练习1
    copy小练习
    小练习
    str 小列题
    条款50:使用自定义的new以及delete的时机会
    条款49:了解new-handle行为
    简单的说一下:tarits技法就是一种模板元编程,起可以将本来处于运行期的事拉到编译期来做,增加了运行效率。 看以非模板元编程的例子,就是前面的那个例子:
    条款47:请使用traits class表示类型信息
    条款46:需要类型转换的时候请为模板定义非成员函数
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/6706646.html
Copyright © 2011-2022 走看看