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

Struts2(七)_第1张图片

  在官网下载的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">
        
        <field-validator type="requiredstring">
                <message>学生名字不允许为空!!!message>
        field-validator>
        
        <field-validator type="stringlength">
            
            <param name="minLength">6param>
            <param name="maxLength">18param>
            <message>长度区间必须在6-18之间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.jspresult>
            
            <result name="input">/index.jspresult>
        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

Struts2(七)_第2张图片

 

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

    ActionClassName是某个Action类的类名

    ActionName是某个方法的访问路径

    UserAction-user_add-validation.xml

    user是

xml约束:略。

2.国际化

国际化原理:

  本地化信息

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

          基本名.properties(默认)

  加载资源文件

  显示资源文件信息

资源文件:

  中文:resource_zh_CN.properties

  英文:resource_en_US.properties

  默认:resource.properties

  存储在同一Action所在包下!

Struts2(七)_第3张图片

Struts2(七)_第4张图片

Struts2(七)_第5张图片

Struts2(七)_第6张图片

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

 

Struts2(七)_第7张图片

Struts2(七)_第8张图片

 

 

      

你可能感兴趣的:(Struts2(七))