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)    收藏  举报