zoukankan      html  css  js  c++  java
  • 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的配置信息

     

          

  • 相关阅读:
    深度学习-Tensorflow2.2-图像处理{10}-图像语义分割-23
    深度学习-Tensorflow2.2-图像处理{10}-图像定位/优化/图运算/及GPU优化等-22
    深度学习-Tensorflow2.2-模型保存与恢复{9}-保存与恢复-21
    深度学习-Tensorflow2.2-多分类{8}-多输出模型实例-20
    【吴恩达课程使用】keras cpu版安装【接】- anaconda (python 3.7) win10安装 tensorflow 1.8 cpu版
    机器学习算法推导--矩阵求导中为何会有“转置”?
    博士五年之后五年的总结-【田渊栋】
    博士经验总结-【田渊栋】
    吴恩达《深度学习》-课后测验-第三门课 结构化机器学习项目(Structuring Machine Learning Projects)-Week2 Autonomous driving (case study) (case study)( 自动驾驶 (案例研究))
    吴恩达《深度学习》-课后测验-第三门课 结构化机器学习项目(Structuring Machine Learning Projects)-Week1 Bird recognition in the city of Peacetopia (case study)( 和平之城中的鸟类识别(案例研究))
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/8195756.html
Copyright © 2011-2022 走看看