`

【转】Struts2.1.6 annotation写法的注意事项

 
阅读更多

struts2.1.6这个版本出来有一段时间了,这个版本在比2.0.11版本改变很多,关于annotation的写法本在在2.0.11的时候就一直在项目中使用。首先介绍这个2个版本的不同之处和2.0.11 annotation升级到2.1.6会出现那先问题。 

第一:版本不同
1、annotation所在的包不同
2.0.11的时候是在核心包里,但是在2.1.6就不是这样的它以插件形式存在了。包名是struts2-convention-plugin-2.1.6.jar 在升级的时候可以修改。 
2、增加新的annotation元素
在原来的基础上2.1.6提供了@Action、@InterceptorRefs、@InterceptorRef等具体的自己看官方文档。 
3、关于@Result的改变
原来的@Result(name="success",value="/index.jsp") 新版的是@Result(name="success",location="/index.jsp")。有所改变 
以上是新版和老版本在写法上的不同。 

第二:升级注意哪些问题
现在的2.1.6资料确实很少,网上有也都是一些肤浅的没有太具体的,而且对于大多数的开发人员来说还是比较习惯使用 
XML格式来配置struts2的,那么如果是使用XML问题就不会很大。无非改下web.xml把原来过时的过滤器换成现在的:

<filter> 
<filter-name>struts2</filter-name> 
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>struts2</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 
但是如果你要是使用annotation改的就多了。

1、拦截器:
关于拦截器这块我用红色字体标识出来,以前我们用2.0.11的时候是没有拦截器的我们只能用包: 
例如:2.0.11版本中:

<package name="struts-interceptor-common-params" extends="struts-interceptor">
   <!-- 由于使用了零配置他只能指定到那个包下所以还要配置一个默认的拦截器表示被使用 -->
   <default-interceptor-ref name="common-params" />
</package>

只能这样指定拦截器然后在代码中使用@ParentPackage("struts-interceptor-common-params")来配置。 
其中common-params是自己定义的拦截。 
在2.1.6版本中 自己定义拦截器的时候 必须要在你的struts.xml里加上

<constant name="struts.convention.default.parent.package" value="struts-interceptor"/>

value值:这个是写你自己定义的拦截器的包名。

<package 
name="struts-interceptor" extends="struts-default"> 
<interceptors> 
<interceptor-stack name="common-params"> 
<interceptor-ref 
name="check-para" /> 
<interceptor-ref name="rightsInterceptor" /> 
<interceptor-ref name="basicStack" /> 
</interceptor-stack> 
</interceptor-stack> 
</interceptors> 
</package> 
关于上述问题网上有很多人在问。现在我已经给出了答案,以上是正确答案并且在项目里也被使用了。 

2、@Action 
@Action ("/url")和@Action ("actionname")两种写法都行。但是一般情况我们都是在一个action里写很多个方法。
例如:一个用户的action他可能有增加、修改、删除我们喜欢把他们3个放在一个action里。那么原来的2.0.11版本是怎么做的呢?
老版本annotation方式你的action类必须是XXXAction也就是说必须是以action结束的一个类 而且你访问的时候必须是访问 
XXX这是老版本的规则,但是新版本不是了,因为2.1.6加入了@Action元素嘛!!可是也有不好的地方就是你所有的action必须要有execute方法,就算你没有用也要加因为这个方法表示actionName的入口,所以你必须要有这个。 
举个例子:

@InterceptorRefs({
@InterceptorRef("common-params-upload")
}
)
@Namespace("/manage/convertmodel/user/usergroup")
public class ExportUserGroupModelAction{
@Action("/exportUserGroupModel!exportUserGroupXML")
/**用户组的XML文件导出*/
public String exportUserGroupXML() {
       。。。。。。
       return null;
}
@Action("/exportUserGroupModel")
public String execute(){
   return null;
}
}

就算不用这个execute方法,也要写上。否则S2.1.6就会找不到Action。 

 

转自:http://blog.csdn.net/oathevil/article/details/7087778

分享到:
评论

相关推荐

    struts2.1.6-lib

    Struts2.1.6-Lib: 深入理解Struts2框架核心与库文件 Struts2是一个流行的开源MVC(Model-View-Controller)框架,它为Java Web应用提供了一种强大的架构支持。Struts2.1.6是该框架的一个版本,其lib目录下的jar包...

    struts2.1.6jar all.zip

    这次我们讨论的是Struts2的特定版本——Struts2.1.6的更新内容和使用注意事项。 在描述中提到,之前上传的"struts2.1.6jar all.zip"文件出现了错误,里面包含了Hibernate的内容,而实际上应该是与Struts2相关的文件...

    struts2.1.6-apps.zip

    Struts2.1.6是Apache Struts框架的一个特定版本,该框架是Java Web开发中的一个强大工具。Struts2以其MVC(Model-View-Controller)架构模式为核心,为开发者提供了一种组织应用程序结构、处理HTTP请求以及管理业务...

    struts2.1.6 解决日历问题

    struts2.1.6 解决日历问题。区别struts2.0

    struts2.1.6jar包

    Struts2.1.6是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的Java Web应用程序开发框架。这个版本的jar包包含了运行Struts2应用所需的所有核心类库和依赖组件。以下是关于Struts...

    Struts2.1.6API

    struts2.1.6api. 想学习struts2的朋友们。希望能喜欢这个api,我也希望能给你们一点帮助。

    struts2.1.6 所有jar包和源码

    Struts2.1.6是Apache Struts框架的一个版本,这是一个流行且强大的Java Web应用程序开发框架,用于构建基于MVC(Model-View-Controller)模式的Web应用。它提供了简化HTTP请求处理、动作调度、视图渲染以及业务逻辑...

    struts2.1.6 API (.chm)

    struts2.1.6 API chm文件格式的是本人自己创建的没有版权问题

    Struts2.1.6 Spring2.5.6 Hibernate3.3.2

    标题 "Struts2.1.6 Spring2.5.6 Hibernate3.3.2" 描述的是一个基于Java的企业级应用程序开发的集成框架,其中包含了三个核心组件:Struts2、Spring和Hibernate。这些组件都是Java Web开发中的关键库,分别负责MVC...

    struts-2.1.6-sources

    Struts 2.1.6 是一个非常重要的版本,在Java Web开发中占据着核心地位,尤其是在基于MVC(Model-View-Controller)架构的应用程序设计中。Struts 2 是Apache软件基金会的一个开源项目,它是Struts 1的升级版,提供了...

    struts2.1.6零配置DEMO

    Struts2.1.6是Apache Struts框架的一个版本,它是一个基于MVC设计模式的Java Web应用程序框架。Struts2提供了丰富的功能,用于构建可维护、可扩展且易于开发的Web应用。在这个"struts2.1.6零配置DEMO"中,我们将深入...

    struts2.1.6

    Struts2.1.6是Apache Struts框架的一个版本,这是一个流行且强大的Java Web应用程序开发框架,用于构建和维护可扩展、易于维护的MVC(Model-View-Controller)架构的应用程序。Struts2的核心设计理念是提供一种组织...

    struts2.1.6lib

    Struts2.1.6是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的Java Web应用程序开发框架。这个版本的lib目录包含了运行Struts2应用所需的所有核心类库,这些类库使得开发者能够构建...

    Struts2.1.6 jar包

    Struts2.1.6是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的Java Web应用程序开发框架。这个版本的Struts2包含了多个jar包,用于实现其核心功能和扩展服务。Struts2提供了一个强大...

    struts2.1.6全部jar包

    Struts2.1.6是Apache Struts框架的一个版本,它是Java EE(企业版)应用程序开发中的一个流行MVC(模型-视图-控制器)框架。这个版本的Struts提供了许多功能,帮助开发者构建可维护、可扩展且结构良好的Web应用。在...

    struts2.1.6架包

    Struts2.1.6是Apache Struts框架的一个版本,这是一个流行且强大的Java Web应用程序开发框架,用于构建和维护可扩展、易于维护的MVC(Model-View-Controller)架构的应用程序。Struts2框架提供了丰富的特性,如动作...

Global site tag (gtag.js) - Google Analytics