• Struts2(七)


    以下内容是基于导入struts2-2.3.32.jar包来讲的

    1.xml验证

      Struts2提供了验证器,实现了通用的验证逻辑。例如:

    非空验证器、长度验证器、日期验证器、email验证器等。具体定义位置:

    xwork-core-2.3.4.1.jar包下/com/opensymphony/xwork2/validator/validators/default.xml

    适合以下情况:

    1.验证字段较多

    2.验证逻辑简单且较多重复

    3.xml文件过多,验证一个方法,需要有一个xml文件对应

    控制器:

     1 package com.rong.web.action;
     2 
     3 import com.opensymphony.xwork2.ActionSupport;
     4 import com.rong.web.entity.Student;
     5 
     6 public class MyAction extends ActionSupport {
     7     private static final long serialVersionUID = -351587239525292420L;
     8     private Student student;
     9     public Student getStudent() {
    10         return student;
    11     }
    12     public void setStudent(Student student) {
    13         this.student = student;
    14     }
    15     @Override
    16     public String execute() throws Exception {
    17         System.out.println("execute!!!");
    18         return SUCCESS;
    19     }
    20 }

    xml配置文件:

    xml文件要与Action类在同一个目录

    xml命名规则:

    验证整个Action类所有的方法

      xml文件命名为:类名-validation.xml

      在官网下载的struts项目下搜索validation,找到Login-validation.xml文件,把该文件内容复制到MyAction-validation.xml文件中,修改文件内容:

    <!DOCTYPE validators PUBLIC
            "-//Apache Struts//XWork Validator 1.0.2//EN"
            "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
    
    <validators>
        <!-- 要验证的属性 -->
        <field name="student.sname">
            <!-- 字符串非空验证器,type是验证器名字,可在default.xml文件查找name -->
            <field-validator type="requiredstring">
                    <message>学生名字不允许为空!!!</message>
            </field-validator>
            <!-- 字符串长度验证器 -->
            <field-validator type="stringlength">
                <!-- 参数名字name可在com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator查看 -->
                <param name="minLength">6</param>
                <param name="maxLength">18</param>
                <message>长度区间必须在6-18之间</message>
            </field-validator>
        </field>
        <!-- 可以继续添加field标签,添加属性验证-->
       <!--  <field name="student.sage">
            <field-validator type="int">
                    <message>xxxxxx</message>
            </field-validator>
        </field> -->
    </validators>
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
        <package name="default" namespace="/" extends="struts-default" >
            <action name="check" class="com.rong.web.action.MyAction">
                <result>/one.jsp</result>
                <!-- 验证信息错误时,框架固定返回input视图 -->
                <result name="input">/index.jsp</result>
            </action>
        </package>
    </struts>
    <form action="${pageContext.request.contextPath }/check" method="post">
            <input type="text" name="student.sname"/>
            <!-- 获取后台返回的校验信息 -->
            <!-- 显示指定错误信息 -->
            <s:fielderror key="#student.sname"></s:fielderror>
            <!-- 显示指定错误信息 -->
            <s:fielderror fieldName="student.sname"></s:fielderror>
            <!-- 可以显示所有的错误信息 -->
            <s:fielderror></s:fielderror>
            <input type="submit" value="登录"/>
        </form>

    验证某个方法

    只需要把xml文件名更改为:类名-该方法的访问路径-validation.xml

      例如:验证指定方法
        命名规则: ActionClassName- ActionName -validation.xml

        ActionClassName是某个Action类的类名

        ActionName是某个方法的访问路径

        UserAction-user_add-validation.xml

        user是<action name="user_*">

    xml约束:略。

    2.国际化

    国际化原理:

      本地化信息

      资源文件: 基本名字_语言名_国家码.properties

              基本名.properties(默认)

      加载资源文件

      显示资源文件信息

    资源文件:

      中文:resource_zh_CN.properties

      英文:resource_en_US.properties

      默认:resource.properties

      存储在同一Action所在包下!

    struts.properties放在src根目录下,配置信息会覆盖原有的default.properties的配置信息

     

          

  • 相关阅读:
    [ 原创 ] Oracle存储过程中使用游标进行多行数据输出
    [ 原创 ] Python解压版安装配置教程
    [ 转载 ] ORACLE存储过程
    [ 转载 ] Oracle存储过程及函数的练习题
    [ 原创 ] Oracle数据库一些基本命令
    [ 转载 ] Linux CentOS 查看操作系统版本信息
    [ 转载 ] Android开发中如何做单元测试
    [ 转载 ] 关于conn /as sysdba 无需密码直接可以连接的疑问
    [ 转载 ] oracle如何查看当前有哪些用户连接到数据库
    [ 转载 ] Oracle 内存(SGA,PGA)详细介绍
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/8195756.html
Copyright © 2020-2023  润新知