1.struts中Action的开发方式

  • 继承ActionSupport类,这种方法实现的Action可以进行数据校验;
  • 实现Action接口;
  • 不继承任何类,不实现任何接口;

  是否继承类或实现接口,struts都会进行默认拦截器的启动,拦截器的启动和Action没有关系。

2.struts中的通配符

  在对action进行配置时,会有重复的情况

<action name="login" class="com.juaner.action.UserAction" method="login">
     <result name="login">/login.jsp</result>
</action>
<action name="register" class="com.juaner.action.UserAction" method="register">
    <result name="register">/register.jsp</result>
</action>

  此时可以使用*占位符和{}的方式进行统配,从而防止重复配置。

<action name="user_*" class="com.juaner.type.UserAction" method="{1}">
    <result name="success">/{1}.jsp</result>
</action>

3.struts中的常量

  • 全局跳转页面

  在action的配置中,可能出现多个action中同一个result返回类型对应同一个跳转页面的情况

<action name="login" class="com.juaner.action.UserAction" method="login">
    <result name="success">/success.jsp</result>
</action>
<action name="register" class="com.juaner.action.UserAction" method="register">
    <result name="success">/success.jsp</result>
</action>

  此时可以配置全局跳转页面

<global-results>
    <result name="success">/success.jsp</result>
</global-results>

  当多个struts配置文件中有多个action配置了相同的name时,按照包含文件的顺序,后面的覆盖前面的。

  • 默认访问后缀

  struts 1中,默认访问后缀为.do,struts 2中默认访问后缀为.action,可以配置默认访问后缀

<constant name="struts.action.extension" value="action,do,"/>

  其中,value的值对应的后缀如下:

action,do --->后缀可以为.action/.do

action,do,--->后缀可以为.action/.do/无后缀

action     --->后缀只能为action

  • 指定默认编码集

  作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出,默认为UTF-8

<constant name="struts.i18n.encoding" value="UTF-8"/>
  • 设置浏览器是否缓存静态内容

  默认值为true(生产环境下使用),开发阶段最好关闭

<constant name="struts.serve.static.browserCache" value="false"/>
  • 设置系统是否自动重新加载struts配置文件

  当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开

<constant name="struts.configuration.xml.reload" value="true"/>
  • 打印更详细的错误信息   

  开发模式下使用,这样可以打印出更详细的错误信息

<constant name="struts.devMode" value="true" />
  • 默认的视图主题

<constant name="struts.ui.theme" value="simple" />
  • 是否支持动态方法调用

   该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为 false

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

  在action配置中不使用通配符,不设置method方法,可以使用!method来进行method方法调用。

  • 上传文件的大小限制

<constant name="struts.multipart.maxSize" value=“10701096"/>

4.action配置中的默认值

  action的class值默认为struts-default包中配置的

<default-class-ref class="com.opensymphony.xwork2.ActionSupport" />

  method值默认为execute()方法,一个最简单的action可以这样

<action name="test"></action>

  它可以用来跳转到WEB-INF下的资源

<action name="test">
    <result name="success">/WEB-INF/index.jsp</result>
</action>
 posted on 2016-05-24 17:43  十三弦  阅读(354)  评论(0编辑  收藏  举报