struts2: lesson four struts2的异常处理,validate验证,xml,annotation三种方式的验证,I18n国际化
第一步:Action 方法上加一个异常处理 throws Exception
第二步:在struts.xml文件中加全局配制文件
<package name="default" namespace="/" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
</package>
validation验证的步法
第一步:action继承一个类,actonsupport
第二步:重写一个方法validate()
第三步:在验证的struts.xml中action添加一个<result name="input">/jsp.jsp</result>
第四步:前台展示如<s:fielderror cssStyle="color:red" />这样就可以全部显示出来了。前台要this.addFieldError("password", "密码不能小于四位数");
xml验证方法:
首先定义一个ActionName-validation.xml 指定要验证的action,这个xml文件必跟这个action放在一起
第二步:定义一个ActionName-validation.xml文件的内容可以查看struts2 帮助文件下validation.html 特别注意这里的ActionName指得是struts.xml配置的Action 的name
如下:其中红色部分就可以在xwork-core-2.1.6.jar中找到相关文件
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="bar">
<field-validator type="required">
<message>You must enter a value for bar.</message>
</field-validator>
<field-validator type="int">
<param name="min">6</param>
<param name="max">10</param>
<message>bar must be between ${min} and ${max}, current value is ${bar}.</message>
</field-validator>
</field>
<field name="bar2">
<field-validator type="regex">
<param name="expression">[0-9],[0-9]</param>
<message>The value of bar2 must be in the format "x, y", where x and y are between 0 and 9</message>
</field-validator>
</field>
<field name="date">
<field-validator type="date">
<param name="min">12/22/2002</param>
<param name="max">12/25/2002</param>
<message>The date must be between 12-22-2002 and 12-25-2002.</message>
</field-validator>
</field>
<field name="foo">
<field-validator type="int">
<param name="min">0</param>
<param name="max">100</param>
<message key="foo.range">Could not find foo.range!</message>
</field-validator>
</field>
<validator type="expression">
<param name="expression">foo lt bar </param>
<message>Foo must be greater than Bar. Foo = ${foo}, Bar = ${bar}.</message>
</validator>
</validators>
第三步:在验证的struts.xml中action添加一个<result name="input">/jsp.jsp</result>
第四步:前台展示如<s:fielderror cssStyle="color:red" />这样就可以全部显示出来了。前台要this.addFieldError("password", "密码不能小于四位数");
以上都是所有Action中的方法验证,如果要对其中一方法进行验证的话则:说明只对add方法进行验证
如果是第一种,重写了validate后在struts.xml 的这个action写加上如下代码:
<interceptor-ref name="defaultStack">
<param name="validation.includeMethods">add</param>
</interceptor-ref>
第三种方法进行验证就是利用注解的方式annotation 这里就不一一说明了。
struts实现国际化。。。。。。。。。。。。。写两个属性文件 App_zh_CN.properties App_en_US.properties 具体做查文档
国际化主要很便的实现中,英等其它语言切换。。。。。。。
posted on 2013-05-11 08:51 peter.peng 阅读(210) 评论(0) 收藏 举报