用了Convention插件来实现所谓的0配置,

1.

struts.convention.package.locators.basePackage=com.ZTest.web.action

这个属性用于约定Action 类的根包(这个包是Java
类的包,而不是Struts.xml中配置的<package>节点)

例如:

在一个项目中有这样一系列的Java 包,那么当指定convention的这个属性,Struts
框架就会在你访问特定的URL时会自动的找到所要的请求的实现类。

当你在浏览器中输入: http://localhost:8080/HelloWorld.action
,Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java类。

当你在浏览器中输入: http://localhost:8080/test/aaa.action
,Struts会自动的找到并执行com.ZTest.web.action.test.aaaAction.java类。

2.

struts.convention.result.path=/WEB-INF/ruiri

这个属性用于约定Action类执行完毕以后返回资源的结果路径,###必须以 "/"
开头,

例如:

当你在浏览器中输入: http://localhost:8080/HelloWorld.action
,Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java类,并放回到WEB-INF/ruiri/HelloWorld.jsp。

当你在浏览器中输入: http://localhost:8080/test/aaa.action
,Struts会自动的找到并执行com.ZTest.web.action.test.aaaAction.java类,
,并放回到WEB-INF/ruiri/test/HelloWorld.jsp 。

3. 
struts.convention.action.name.lowercase=false

###是否将Action类转换成小写 
当一个类的类名是多个单词组合起来的时候,例如
HelloWolrdAction,如果指定了这个属性,则访问的地址必须是: 
HelloWorld.action ,如果不是指定这个属性则是: 
helloworld.action

4. 
struts.convention.action.name.separator=

这个属性是约定当一个Java 类
有多个单词组合成的时候,映射的URL地址的时候访问的格式的分隔符。

如果不指定这个属性,Struts默认的分隔符是 “-”,例如 HelloWorldAction 则访问的URL
是Hello-World.action

如果指定这个属性是上面的格式,则是没有分隔符,会按照Java 类名直接映射,例如 HelloWorldAction 则访问的URL
是HelloWorld.action


struts.convention.default.parent.package=default

这个属性指定的是Strtus.xml中配置的
<package>节点的父节点。(有什么用?可能就是用于定义全局的Result
吧,这个本人也没深入的研究过)

6

struts.convention.package.locators=action

确定搜索包的路径。只要是结尾为action的包都要搜索。

详细讲解一下这个属性,因为我刚开始的时候被这个属性搞晕了,希望我的解释能帮助和我有过同样疑问的友人。

例如:我们有这样一些类:

com.ZTest.web.action.AAAAAction

com.Ztest.web.action.BBBBAction

com.Ztest.web.action.test/CCCCAction

com.Ztest.web.action.test/DDDDAction

com.Ztest.web.action.test/first/EEEEAction

com.Ztest.web.action.test/first/FFFFAction

如果,我设置这个属性的值为 action 那么 我们访问这几个类得URL就是

http://localhost:8080/ZTest/AAAA.action

http://localhost:8080/ZTest/BBBB.action

http://localhost:8080/ZTest/test/CCCC.action

http://localhost:8080/ZTest/test/DDDD.action

http://localhost:8080/ZTest/test/first/EEEE.action

http://localhost:8080/ZTest/test/first/FFFF.action

而每个URL对应的资源文件必须是下面的格式:(按照本文中的result.path配置的结果)

/WEB-INF/ruiri/AAAA.jsp

/WEB-INF/ruiri/BBBB.jsp

/WEB-INF/ruiri/test/CCCC.jsp

/WEB-INF/ruiri/test/DDDD.jsp

/WEB-INF/ruiri/test/first/EEEE.jsp

/WEB-INF/ruiri/test/first/FFFF.jsp

也就是说:

struts.convention.package.locators=action
就是相当于下面的解释

类路径                                   
命名空间(struts.xml中配置的<package>节点)

com.ZTest.web.action.AAAAAction            
->   

com.ZTest.web.action.test.CCCCAction       
->   
/test

com.ZTest.web.action.test.first.EEEEAction
->   
/test/first

当然对应的资源的文件路径就是:

/WEB-INF/ruiri/AAAA.jsp

/WEB-INF/ruiri/test/CCCC.jsp

/WEB-INF/ruiri/test/first/EEEE.jsp

区别:

struts.convention.package.locators=action

确定搜索包的路径。只要是结尾为action的包都要搜索。

struts.convention.package.locators.disable=false

struts.convention.package.locators.basePackage=com.xxx.web.action

basePackage按照默认不用配置,如果配置,只会找以此配置开头的包。

locators及locators.basePackage都是一组以逗号分割的字符串。

<转>struts2中Convention中的basePackage与locators配置种种的更多相关文章

  1. 在struts2的action中操作域对象(request、session)

    在struts2的Action中,操作域对象一共有三种方式: 1.ActionContext(与servelt API无关联): //相当于request ActionContext.getConte ...

  2. Struts2之配置文件中Action的详细配置(续)

    承接上一篇 4.处理结果的配置 Action类的实例对象调用某个方法,处理完用户请求之后,将返回一个逻辑视图名的字符串.核心Filter收到返回的逻辑视图名字符串,根据struts.xml中的逻辑视图 ...

  3. Struts2之配置文件中Action的详细配置

    在Struts2之配置一文中,我们知道一个struts配置文件可以分为三部分:常量配置    包含其他配置文件的配置    Action配置  . 这其中 常量配置  和 包含其他配置文件的配置  二 ...

  4. 软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征

    1.基于web开发中最原始的jsp+Servlet   图形化理解jsp+servlet结构: 1.从结构上分析jsp+servlet图解原理: 在基于mvc设计模式下的最原始的jsp+Servlet ...

  5. Struts2的配置文件中, <package>的作用,<action><result>重名?

    问:Struts2的配置文件中, <package>的作用是什么? 答:防止action重名啊,例如前台和后台,总会有很多地方起名重复的! 问:可是访问的时候,不也是访问action吗,能 ...

  6. Struts2页面开发中常用标签使用说明

    1. Struts2页面开发中常用标签使用说明 1.1.往action里传值的使用方式: <input name="userName" type="text&quo ...

  7. struts2 - View页面中获取Action的成员变量

    struts2 - View页面中获取Action的成员变量 2016年03月02日 11:04:44 IT男青年 阅读数:1074   View页面中获取Action的成员变量 按照Struts的设 ...

  8. JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  9. struts2基于Convention插件的约定映射使用

    一.首先说明一点:所谓的基于Convention插件的约定优于配置的使用,并不是严格意义上的零配置,struts.xml文件并不能完全舍弃. 获得Convention插件功能,所必需的jar包有:|a ...

随机推荐

  1. Java Servlet-入门

    配置 servlet <servlet> <servlet-name>one</servlet-name> <servlet-class>servlet ...

  2. 消息推送SignalR

    一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...

  3. JDBC之初识

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  4. Windows7 下配置添加ASP功能

    按照如下顺序添加 1.控制面板-程序-打开或关闭Windows功能 2.Internet信息服务-万维网服务-应用程序开发功能 3.勾选ASP 和ASP.net选项 确定后安装完毕即可支持.

  5. Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器

    最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...

  6. JavaScript最佳实践:可维护性

    代码约定 一.可读性 代码缩进 包含注释 二.变量和函数命名 变量名应为名词如car或person 函数名应该以动词开始,如getName().返回布尔类型值的函数一般以is开头,如isEnable( ...

  7. String 转Clob

    把String转Clob java.sql.Clob c = new javax.sql.rowset.serial.SerialClob("abc".toCharArray())

  8. C++描述基础算法之直接插入排序

    由于此博文并不难,所以并不需要搬出C++特性的这些大山,所以就使用简单的C++代码描述了.^_^ 直接插入排序是一种简单的插入排序法,所以适用于少量数据的排序,直接插入排序是比较稳定的一种排序算法. ...

  9. SQL正常工作日上班安排

    alter proc [work] as declare @i int begin id into #restdate from dt_work where work_date in (select ...

  10. aix用命令查监听端口对应的进程

    --aix$netstat -an|grep LISTEN|grep 7867tcp4 0 0 *.7867 *.* LISTEN$netstat -Aan|grep 7867f1000e00029f ...