`

struts2 annotation 设置说明

阅读更多

1.官方介绍的地址:

http://struts.apache.org/2.1.6/docs/convention-plugin.html


2.struts.xml文件配置

只挑选几个重要的常量说明:

(1) <constant name="struts.locale" value="zh_CN"/>
      <constant name="struts.i18n.encoding" value="UTF-8"/>

      struts2.1.6  现在只需要一个struts.xml文件就可以了。以前配struts.locale=zh_CN,struts.i18n.encoding=UTF-8,应用起动时会报一个警告,说没有配置locale,必须要在struts.properties里面配置才不会报错,现在这个问题已经解决了,所有配置都可以在xml文件中指定了。


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

      扩展名可以指定为空。这样地址栏比较好看。但也会有个问题,就是一些其他servlet映射,如cxf,我们会映射地址为/services/*,现在这个地址也变成struts2控制范围的地址了,如果按默认的配置会报找不到action的错误。解决办法是修改mapper类。这在以后文章中会提到。


(3)  <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
       <constant name="struts.enable.SlashesInActionNames" value="true"/>

      开启动态方法。要实现零配置,就是需要动态方法调用。开启action名称可以有 “/”,一个请求地址有多个“/”,struts2就不会再使用类路径扫描的命名空间,只会使用配置的名称。所以既想action名称里使用“/”,又想用struts2默认搜索的命名空间,只能自己修改一下convention插件的实现类了。


(4) <constant name="struts.ui.theme" value="simple"/>

      不用dojo的及struts2复杂标签样式的就把主题设置为simple,这样可以不加载多余的模板。


(5) <constant name="struts.devMode" value="true"/>
      <constant name="struts.i18n.reload" value="true"/>
      <constant name="struts.configuration.xml.reload" value="true"/>
      <constant name="struts.convention.classes.reload" value="true" />

       开启开发者模式,在平时开发时修改action的annotation配置可以不重启,但是修改struts.xml文件还是要重启。修改类的具体内容,debug模式下可以不重启,或是使用javarebel,这个不在讨论范围。


(6)  <constant name="struts.convention.result.path" value="/WEB-INF/pages/"/>

      指定结果页面路径。 convention插件会自动在此路径中寻找文件。放到WEB-INF的目的的保护文件资源,只能通过程序内部跳转才能访问,我们的权限拦截器或其他权限处理只要加到action上就可以了。


(7) <constant name="struts.convention.action.suffix" value="Action"/>
     <constant name="struts.convention.action.name.lowercase" value="true"/>
     <constant name="struts.convention.action.name.separator" value="_"/>

     一个action名字的获取。比如为HelloWorldAction。按照配置,actionName为hello_world。


(8)<constant name="struts.convention.action.disableScanning" value="false"/>

     是否不扫描类。一定要设为false,否则convention插件不起作用,零配置也没有意义。


(9)<constant name="struts.convention.default.parent.package" value="default"/>

     设置默认的父包,一般我们都设置一个default包继承自struts-default。大部分类再继承default。如果有特殊的类需要特殊的包,只能在action中再指定父包了。


(10) <constant name="struts.convention.package.locators" value="action"/>
       <constant name="struts.convention.package.locators.disable" value="false"/>
       <constant name="struts.convention.package.locators.basePackage" value=""/>

   确定搜索包的路径。只要是结尾为action的包都要搜索。basePackage按照默认不用配置,如果配置,只会找以此配置开头的包。locators及locators.basePackage都是一组以逗号分割的字符串。


(11)  <constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate."/>

   排除哪些包不搜索。按默认配置即可。逗号分割字符串。


(12)  <constant name="struts.convention.action.includeJars" value="" />

   包括哪些jar包中的action。逗号分割字符串。


(13)<constant name="struts.convention.relative.result.types" value="dispatcher,freemarker,velocity"/>

   默认返回的结果类型搜索。按顺序先找相关的dispatcher的jsp文件是否存在。然后再找freemarker,再找velocity。


(14)<constant name="struts.convention.result.flatLayout" value="true"/>

      如果此值设为true,如果一个action的命名空间为/login,名称为HelloWorldAction。result返回值是success,默认会找到/WEB-INF/pages/login/hello_world.jsp(如果有hello_world_success.jsp就找这个文件,连接符“_”是在<constant name="struts.convention.action.name.separator" value="_"/>中配置的)。如果有一个action的result返回值是“error”,就会找/WEB-INF/pages /login/hello_world_error.jsp。

      如果此值设为false,如果一个action的命名空间为/login,名称为HelloWorldAction。result返回值是success,默认会找到/WEB- INF/pages/login/hello_world/index.jsp(如果有success.jsp就找这个文件)。如果有一个action的result返回值是“error”,就会找/WEB-INF/pages /login/hello_world/error.jsp。


(15) <constant name="struts.convention.action.mapAllMatches" value="false"/>
       <constant name="struts.convention.action.checkImplementsAction" value="false"/>
    <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
    <constant name="struts.convention.redirect.to.slash" value="true"/>

      这几个配置没有太多的实际意义,本着最小检查的原则就可以。


(16)默认拦截器配置,已经简化了许多,一般不需要chain和 fileupload。modelDriven也没什么用,如果我们要使用restfull插件会有用。其实最简单只要一个params就可以了。我加入 exception是为了开发时的异常。servletConfig是为了包装一下request,reponse等对象,staticParams是为了可以配置${}形式参数。actionMappingParams是struts2.1新增的,我初步认为是可以在action配置中传参数,这个还有些疑问。

Xml代码
<package name="default" extends="struts-default">    
   <interceptors>    
        <interceptor-stack name="defaultStack">    
            <interceptor-ref name="exception" />    
            <interceptor-ref name="servletConfig"/>    
            <interceptor-ref name="actionMappingParams"/>    
            <interceptor-ref name="staticParams"/>    
            <interceptor-ref name="params" />    
        </interceptor-stack>    
    </interceptors>    
</package>   

<package name="default" extends="struts-default"> 
   <interceptors> 
        <interceptor-stack name="defaultStack"> 
            <interceptor-ref name="exception" /> 
            <interceptor-ref name="servletConfig"/> 
            <interceptor-ref name="actionMappingParams"/> 
            <interceptor-ref name="staticParams"/> 
            <interceptor-ref name="params" /> 
        </interceptor-stack> 
    </interceptors> 
</package>
分享到:
评论

相关推荐

    权限管理 struts2 hiberante3.5 spring3.0 annotation

    总结起来,"Struts2+Hibernate3.5+Spring3.0(Annotation)"的组合为Java Web开发提供了一个强大的基础架构,尤其在权限管理方面。通过合理的配置和使用注解,可以实现高效、灵活且易于维护的权限控制系统。这不仅...

    Struts2_API

    Struts2_API是开发者在使用Struts2框架时的重要参考资料,它详细地列出了框架提供的所有类、接口和方法,帮助开发者理解并有效地利用Struts2的功能。 1. **Action接口与ActionSupport类**: - `Action`接口是...

    Struts2入门教程(全新完整版)

    十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...

    Struts2 json插件入门指南.pdf

    ### Struts2 JSON插件入门知识点详解 #### 1. 依赖包 - **Struts2 必需的 6 个 jar 包** - `commons-fileupload-1.2.2.jar`: 提供了文件上传功能的支持。 - `commons-io-2.0.1.jar`: 用于处理I/O操作,简化输入...

    Struts2内置拦截器简介

    - **说明**:当启用Struts2的调试模式时,此拦截器会提供更多的日志信息,便于开发者调试程序。 8. **Exec And Wait (执行并等待)** - **用途**:允许异步执行Action,在Action执行过程中显示一个等待页面给...

    struts2+spring+hibernate(实现XML和Annotation两种方式操作数据库)

    struts2+spring+hibernate(实现XML和Annotation两种方式操作数据库) 项目描述: 框架及版本:struts2 + spring3.0 + hibernate3.3 所实现的功能说明 把两个对象存入到数据库中 1、一种方法采用XML文件映射的方式 2...

    struts Spring Hibernate标签和注解资料合集

    springmvc注解.doc,Spring注解讲解.doc,struts2标签详解.pdf,struts2常用标签.pdf,Struts2页面开发中常用标签.pdf,Struts2注解详细说明文档.doc,Hibernate注解教程:Hibernate Annotation使用实例.maff

    Struts2_极速表单验证框架使用说明书.pdf

    **知识点:Struts2极速表单验证框架** **1. 概述** Struts2极速表单验证框架是Struts Plus项目的一个子模块,旨在提高Struts2框架下的表单验证效率与便捷性。该框架由刘长炯(beansoft@126.com)创建,初始版本发布...

    Spring_Hibernate_Struts2整合

    【Spring_Hibernate_Struts2整合】是Web开发中常见的技术栈整合,主要涉及Spring、Hibernate和Struts2这三个主流的Java EE框架。整合这三大框架可以让应用具备强大的数据持久化能力、灵活的业务逻辑处理以及高效的...

    Struts2SpringMybatis框架整合

    1. **配置Struts2**:在struts2的核心配置文件`struts.xml`中,定义Action类和对应的视图,设置Action与Spring Bean的关联,这样Struts2可以调用Spring管理的Bean来执行业务逻辑。 2. **配置Spring**:创建Spring的...

    spring2.5+hibernate3.2+struts2.0组合配置说明

    ### Spring2.5 + Hibernate3.2 + Struts2.0 组合配置说明 在当前的软件开发领域,Spring2.5、Hibernate3.2 和 Struts2.0 这三个框架因其卓越的性能与丰富的功能而备受青睐。它们分别在业务逻辑层管理、数据持久化...

    spring和Struts2注解文档

    在IT领域,特别是Java开发框架中,Spring和Struts2都是极为重要的技术栈,它们各自通过注解(Annotation)机制提供了强大的功能扩展性和代码简洁性。以下是对Spring和Struts2注解的深入解析和使用指南。 ### Spring...

    struts2中Action数据绑定几种方法.rar

    以下是关于Struts2中Action数据绑定的几种方法的详细说明: 1. **属性注解(Field Annotation)** Struts2支持使用JavaBeans的getter和setter方法进行数据绑定,但也可以通过在字段上添加注解来简化这一过程。例如...

    最新struts2.1.1源码

    Struts2以其强大的功能、灵活性和广泛的社区支持,成为许多企业和开发者构建Java Web应用的首选。在这个最新的2.1.1版本中,我们能够期待一些改进和新特性,尽管描述中没有具体说明。 首先,让我们深入理解Struts2...

    使用Annotation并对DAO层封装具有分页功能的S2SH整合实例_好资源0分送

    - **官方文档**:Struts2、Hibernate、Spring等框架的官方文档提供了详细的使用说明和技术指南。 - **社区讨论**:Stack Overflow、GitHub等平台上有大量的技术讨论和示例代码可供参考。 - **教程资源**:黎活明、...

    struts2.0注解例子

    在Struts2中,注解被用来标记控制器类、方法以及参数,用于定义请求映射、拦截器和结果类型等。 1. **Action注解**:在Struts2中,`@Action`注解用于标记一个方法作为处理特定HTTP请求的入口点。例如: ```java @...

    MyEclipse8.6+Struts2.1+Spring3.0+Hibernate3.3环境搭建.doc

    - 通过MyEclipse的Add Struts Capabilities功能,选择struts2.1版本,添加Struts Core和Struts 2 Spring库。 - 配置Struts.xml和web.xml:Struts.xml用于定义Action,web.xml则配置核心过滤器。 4. 添加Spring...

    S2SH快速搭建

    2. **配置Struts2的过滤器**:在`web.xml`中添加Struts2的过滤器`StrutsPrepareAndExecuteFilter`,并将URL模式设置为`/*`,这样所有请求都将通过Struts2处理。 #### 六、配置Web.xml和applicationContext.xml ...

    s2sh框架整合jar及配置方法

    在Java开发领域,SSH(Struts2 + Spring + Hibernate)是一个经典的MVC框架组合,用于构建企业级Web应用。本文将详细阐述如何整合S2SH(Struts2、Spring、Hibernate)框架,并介绍如何添加jar文件以及配置相关步骤。...

Global site tag (gtag.js) - Google Analytics