`

Struts2 诸多配置文件总结

 
阅读更多

一、struts.xml 核心配置文件,配置Action

 

二、struts.properties 配置struts 常量,比如配置国际化资源位置 struts.custom.i18n.resource = i18n.message

 

 

国际化:

① 全局国际化资源文件: message_en.properties  message_zh_CN.properties

 

② java类所在的包国际化资源文件:package_en.properties  package_zh_CN.properties

 

③ 类资源文件:actionName_en.properties  actionName_zh_CN.properties

 

④ 临时资源文件 temp_en.properties  temp_zh_CN.properties ,其中temp即资源文件的前缀,可自由命名。用法:

    <s:i18n name="temp">

          <s:text name="key"/>

    </s:18n/>

 

 

类型转换

全局类型资源文件 xwork-conversion.properties 配置全局类型转换对象,格式如下:

    类全路径 = 类型转换器全路径

    例如:   com.test.model.User=

    com.test.converter.UserDataTypeConverter

 

    转换错误时覆盖struts默认错误提示信息需要在全局国际化资源文件中覆盖xwork.default.invalid.fieldvalue  类型转换错误(可自由定义),如果需要设置特殊字段的转换错误提示,则需要第二步

 

② 在Action所在的文件夹中添加 actionName.properties,设置特殊提示信息需要此种格式:

invalid.fieldvalue.user(Action属性名),其中invalid.fieldvalue 固定不变

 

③ 在Action所在的文件夹中添加Action的类型转换资源文件action-conversion.properties , 转换格式如下 

    属性名=转换器类路径,

    例如  user= com.test.converter.UserDataTypeConverter

 

 

    对于集合类型的,根据集合类型进行转换

    1、List 如果指定集合中存放元素类型,则不需要在action-conversion.properties 中指定;否则,需要按照此格式

         Element_属性名 = 对象类路径。

         例如:Element_user = com.test.model.User 

                  user= com.test.converter.UserDataTypeConverter

   

    2、Map 如果指定集合中存放元素类型,则不需要在action-conversion.properties 中指定;否则,需要按照此格式

         Key_属性名 = 对象类路径  和 Element_属性名 = 对象类路径。

         例如:Key_user = java.lang.String 

                  Element_user = com.test.model.User

                  user= com.test.converter.UserDataTypeConverter

 

     3、Set  如果指定集合中存放元素类型,则需要在action-conversion.properties 中指定

 

          KeyProperty_属性名 =  元素属性名

          例如:KeyProperty_user = username

                   user= com.test.converter.UserDataTypeConverter

 

 

         否则,需要按照此格式:

         KeyProperty_属性名 =  元素属性名  和 Element_属性名 = 对象类路径

         例如:KeyProperty_user = username

                  Element_user = com.test.model.User

                  user= com.test.converter.UserDataTypeConverter

 

 

 输入校验

 在Action所在的文件夹中添加验证器actionName-validator.xml,如果当前Action有多个业务处理逻辑,并且输入验证不一样,则首先要在struts.xml中定义各业务逻辑处理方法,例如

          

       <action name="logic" class="com.test.web.UserAction">

                    <result>....</result>

       <action>

   <action name="logic1" class="com.test.web.UserAction" method="login">

                    <result>....</result>

       <action>  

      

   <action name="logic2" class="com.test.web.UserAction" method="register">

                    <result>....</result>

       <action> 

 然后需要在UserAction类所在文件夹添加UserAction-validator.xml

 UserAction-logic1-validator.xml 和 UserAction-logic2-validator.xml三个文件才能实现三个业务逻辑的处理。

创建验证器文件的文件名格式如下:

ActionName-AliasName-validator.xml,其中aliasName 就是在struts.xml中定义的Action的name属性中设置的名称。

 

如果UserAction 继承 BaseUserAction ,同时BaseUserAction 已经有了BaseUserAction-validator.xml,则UseAction会继承BaseUserAction中的校验规则。如果UserAction 中定义了UserAction-method1-validator.xml和UserAction-method2.validator.xml,则系统查找验证器时的顺序为:

 

BaseUserAction-validator.xml

BaseUserAction-method1-validator.xml

BaseUserAction-method2-validator.xml

UserAction-validator.xml

UserAction-method1-validator.xml

UserAction-method2-validator.xml

由此看出,系统是假设父类BaseUserAction也有method1 和 method2两个对应的方法.

 

以上为自己学习总结,有不足和错误之处希望原谅和给予指正,谢谢

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics