以下内容是基于导入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">
<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
例如:验证指定方法
命名规则: 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所在包下!
struts.properties放在src根目录下,配置信息会覆盖原有的default.properties的配置信息