`
qieyi28
  • 浏览: 152846 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2注解访问路径的总结

 
阅读更多

转载文章地址http://blog.csdn.net/yajiehanyang/article/details/6182287

     以前在用struts2的注解配置时总是要在web.xml中配置一个初始化参数(actionPackages),最近发现不灵了,仔细研究了下发现即使不用在web.xml中配置也能成功,但时灵时不灵的,很是纠结,到今天算是把它给搞清楚了!

原来在新版本中的注解配置是要依赖一个struts2-convention-plugin-2.1.8.1.jar的包,而这个包会默认依次检索包名里含有struts,struts2,action,actions的包,然后它会对实现了Action接口以及类名以Action结尾的这些类,作为Action来进行处理。


它的映射规则是这样的,对于以Action结尾的的类,去掉Action,取剩下的部分,将所有的字母转换为小写,如果有驼峰式的写法,则用"-"连接符来连接不同的单词,这是此插件的默认方式。最终转换之后的就是请求地址,下面看一个例子说明:

com.han.action.OrderAction 这个类按照上面的规则,那么它的请求地址就应该是去年后面的Action,前面的Order全部转换成小写,那么最后的结果就是 /order.action


但我们平时一般还有命名空间的问题,在这里面是如果你的包名里面在struts,sturts2,action,action2的后面还有其它的话,那么后面的部分就默认为命名空间,还是看例子:

com.han.action.other.OrderAction  按上面所说的那么这个最终的请求地址就为:/other/order.action

 

我们还经常使用驼峰命名法,而它的默认解析规则为"-"连接符来连接不同的单词,如:

com.han.action.UserOrderAction 这个请求地址就为:/user-order.action

 

还有一种情况,如果你的包名里同时含有多个关键字,那么默认将按照我上面写的顺序来解析,还是来看例子:

com.han.struts.action.OrderAction 这个里面就同时包含struts与action而默认struts的优先级高那么后面的action就作为普通的字符(默认也就是命名空间)来处理,所以请求地址就为:/action/order.action,而如果是:

com.han.action.struts.OrderAction  (因为struts的优先级高)最终的结果就为:/order.action

 

那么如果我们不想按照它默认的这几种关键字来检索呢?有办法,那就是通过struts.xml的常量配置来修改它检索的关键字:

<constant name="struts.convention.package.locators" value="han" />

这样就让它默认的检索为包名里是否含有han来判定action了

分享到:
评论

相关推荐

    struts2注解详细说明

    从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。• 包命名习惯来指定Action位置• 命名习惯制定结果(支持JSP,FreeMarker等)路径• 类名到URL的约定转换• 包名...

    ssh2注解配置

    ssh2注解配置,全部是注解配置,struts2和hibernate3和spring2.5全部是注解配置,,访问路径为http://localhost:8080/mytest/student/findAll.action

    SSM框架整合(Struts 2.1+Spring 3.0+MyBatis 3.06)

    SSM框架整合,使用最新版MyBatis-Jar包(Struts2.1+Spring3.0+MyBatis...项目访问路径 localhost:8080/SSI_Demo2 一个简单的例子(Oracle数据库增删改查示例) 用户的增删改查操作,依赖注入和注解事物管理,适合初学者...

    BOS 技术整理

    @Action 配置访问路径,和方法绑定 @Result 结果集配置  struts2 和 spring 整合 struts2 的 Action 使用 spring 注解,被 spring 管理 @Controller spring 表现层 bean @Scope 配置 Action 为多例 Spring Data...

    前后台管理系统模板源代码 java语言 ssh开发框架 Spring+Struts+Hibernate

    一、简介 开发工具:MyEclipse/Eclipse,jdk1.7,tomcat7,mysql5.6,navicat,editplus等工具; ...项目访问路径:http://localhost:8080/SSHTemplate/admin 管理员用户名:admin,密码:admin

    Java学习笔记-个人整理的

    {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{...

    三大框架整合源代码

    2.如果导入后项目报很多错,就是jre路径不对,请手动更换jre路径 3.struts和hibernate全部交由spring来管理,所以不需要使用hibernate.cfg.xml以及entity.hbh.xml文件 4.框架全部使用注解来完成 5.完成功能有:事物...

    Spring in Action(第二版 中文高清版).part2

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    Spring in Action(第2版)中文版

    16.2协同使用spring和webwork2/struts2 16.3集成spring和tapestry 16.3.1集成spring和tapestry3 16.3.2集成spring和tapestry4 16.4协同使用spring和jsf 16.4.1解析jsf管理的属性 16.4.2解析springbean 16.4.3...

    Spring in Action(第二版 中文高清版).part1

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    客户关系管理系统框架搭建(二)

    * struts2需要的jar包 * jstl 需要的jar包 * junit需要的jar包 * 包的介绍 * cn.itcast.crm.container:重新封装spring容器 * cn.itcast.crm.dao:放置的是dao接口 * cn.itcast.crm.dao.impl:放置的是dao接口...

    Spring中文帮助文档

    15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport Classes 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制...

    Spring API

    15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport Classes 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制...

    spring chm文档

    15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport 类 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - ...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Spring-Reference_zh_CN(Spring中文参考手册)

    15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.1.1. DelegatingRequestProcessor 15.4.1.2. DelegatingActionProxy 15.4.2. ActionSupport 类 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.5.1.1. 将 ...

    Spring 2.0 开发参考手册

    15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport 类 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - ...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics