一、struts2国际化中的占位符的处理我们在Action类中调用ActionSupport类的getText方
法,调用该方法时,传入用于填充占位符的参数值。访问该带占位符消息的Action类如下:
ActionContext.getContext().put("user", this.getText("welcome",list));
在页面调用的方式
<s:text name="welcome"><!-- 不带占位符国际化消息 -->
<s:param><s:property value="username"/></s:param><!-- 占位符 -->
</s:text>
<span style="color:red">成功页面</span> </h3>
<br/>
<br>
request:${requestScope.user} <!-- 输出完整带有占位符的国际化消息 -->
二、struts2配置国际化
在struts.xml中
<!-- 配置I18n,value的值是baseName(也就是国际化文件的前面的baseName) -->
<constant name="struts.custom.i18n.resources" value="Message"></constant>
三、struts2校验框架
Struts2框架系统内部已经注册了内建的校验器,可以打开Struts2的lib包下的xwork.jar包,在com/opensymphony/xwork2/validator/validators目录下找到一个default.xml配置文件,该文件中定义了Struts2框架内建的校验器。
从Struts2的配置文件中可以看到Struts2有如下内建校验器:
1 required 必填校验器,要求字段必须有值
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
2 requiredstring 必填字符串校验器,要求必须有值且长度大于0,即不能是空字符串。默认会去掉字符串前后空格
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
参数trim:该参数为可选参数,用于指定是否在校验之前对字符串进行整理。
3 stringlength字符串长度校验器,用于检验字段中字符串长度是否在指定的范围
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
参数trim:该参数为可选参数,用于指定是否在校验之前对字符串进行整理。
参数 maxLength:用于指定最大字符串长度,该参数为可选
参数 minLength:用于指定最小字符串长度,该参数为可选
4 int 整数校验器,可以配置整数在指定的范围内
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
参数 min:指定字段值的最小值,该参数为可选
参数 max:指定字段值的最大值,该参数为可选
5 double 双精度校验器,可以配置双精度数在指定的范围内
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
参数 minInclusive:指定字段数值所接受的最小值,该参数为可选
参数 maxInclusive:指定字段数值所接受的最大值,该参数为可选
参数 minExclusive:指定字段数值被排除的最小值,该参数为可选
参数 maxExclusive:指定字段数值被排除的最大值,该参数为可选
6 date 日期校验器,可以配置日期在指定的范围内
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
参数 min:指定字段日期值的最小值,该参数为可选
参数 max:指定字段日期值的最大值,该参数为可选
6,expression 表达式校验器,它是一个非字段校验器,当参数expression计算的值为true时,校验通过,否则返回提示。
参数 expression:该参数为一个逻辑表达式,该参数使用OGNL表达式,并基于值栈计算,返回一个Boolean类型值。
7,requiredstring 字段表达式校验器,当参数expression计算的值为true时,校验通过,否则返回提示。
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
参数 expression:该参数为一个逻辑表达式,该参数使用OGNL表达式,并基于值栈计算,返回一个Boolean类型值。
8 url 网址校验器,要求被检查的字段如果非空,则必须是合法的URL地址。
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
9 email 邮件地址校验器,要求被检查的字段如果非空,则必须是合法的邮件地址。
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
10 visitor复合类型校验器
该校验器用来校验Action中定义的复合类型属性,支持简单的复合类型、数组类型。Map等集合类型。
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
参数 context:校验器引用的上下文,可选参数
参数 appendPrefix: 为字段校验信息加前缀,可选参数
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator Config 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<!-- username字段校验 -->
<field name="username">
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">10</param>
<message>用户名长度为${minLength}到${maxLength}之间!</message>
</field-validator>
<field-validator type="requiredstring">
<message >用户名不能为空!</message>
</field-validator>
</field>
<!-- password1字段校验 -->
<field name="password1">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>错误,密码不能为空!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">20</param>
<message>用户密码长度为${minLength}到${maxLength}之间!</message>
</field-validator>
</field>
<!-- password2字段校验 -->
<field name="password2">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>错误,确认密码不能为空!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">20</param>
<message>用户密码长度为${minLength}到${maxLength}之间!</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression">password1==password2</param>
<message>两次输入密码不一样!</message>
</field-validator>
</field>
<!-- birthday字段校验 -->
<field name="birthday">
<field-validator type="date">
<param name="min">1990-01-01</param>
<param name="max">2011-04-14</param>
<message>错误:生日应该在一个范围内!</message>
</field-validator>
</field>
</validators>
注意:
<!-- spring默认是singleton模式,把他改为scope="prototype",解决重复登录校验框架重复出现错误验证信息 ,即每次登录都会创建一个,就不会出现重复的错误信息了-->
<bean id="loginAction" class="com.ssh.action.LoginAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
四、