Struts2 convention plugin
2015-07-16 16:59
357 查看
零配置≠无配置。
约定优于配置。
Struts2-convention-plugin.jar位于struts2/lib目录下。
它提供基于annotation(注解)的方式来代替struts.xml。
在该jar包下的struts-plugin.xml是对该插件的各种基本配置。它继承于struts-default。
如果需要改变配置,可以在struts.xml中进行常量声明和赋值来替换默认配置。
常量说明(以下常量均为默认配置):
7. Annotation(注解)
@Action(String value)
用来代替类名的访问名,例如MyTest类,在类级别上@Action(“abc”),则访问的action名为abc,而不是默认的my-test,此注解也可写在方法上,定义为访问该方法的action名。此注解受struts.convention.redirect.to.slash影响。返回视图为abc.jsp,忽略方法返回的字符串。
@Actions
包含一个@Action数组
格式:@Action({@Action() , @Action()})
@Result
定义方法返回的结果类型,参数,资源路径,此注解必须写在类级别上。
格式:@Result(name=”” , location=”” , type=”” , params={“”,”“})
name对应方法返回的字符串,location对应返回资源的路径,type对应返回资源类型
params对应返回结果的参数,格式params={“key0”,”value0”,”“key1,”value1”….”keyN”,”valueN”}
@Results
包含一个@Result数组
格式:参照@Actions
@Namespace
指定action的访问路径,会替换掉默认package的路径。
格式:@Namespace(String value)
例如:假设MyTest默认Namespace为/test,其访问路径为xxx/test/my-test。若设置为@Namespace(“abc”), 则访问路径为/abc/my-test。
注意:默认情况下action的访问路径必须和返回视图资源路径对应。
例如:假设默认搜索xxx.xxxx.xxx.web包下的action,MyTest类在web.action.test包下,则MyTest类中 方法默认情况返回搜索视图的路径为/WEB-INF/content/action/test/xxx.jsp
约定优于配置。
Struts2-convention-plugin.jar位于struts2/lib目录下。
它提供基于annotation(注解)的方式来代替struts.xml。
在该jar包下的struts-plugin.xml是对该插件的各种基本配置。它继承于struts-default。
如果需要改变配置,可以在struts.xml中进行常量声明和赋值来替换默认配置。
常量说明(以下常量均为默认配置):
<!-- 结果资源所在路径,也就是返回的页面路径 --> <constant name="struts.convention.result.path" value="/WEB-INF/content/"/> <!-- 搜索的Action资源包路径,无论层级,例如package.action,多项以逗号隔开--> <constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/> <!-- 指定哪些包不搜索 --> <constant name="struts.convention.exclude.packages" value="org.apache.struts.*"/> <!-- 是否将返回的字符串作为资源名的一部分,例如MyTestAction中方法返回“abc”,如果设为true,则视图资源名为 my-test-abc.jsp,false则为my-test.jsp --> <constant name="struts.convention.result.flatLayout" value="true"/> <!-- 类名最后的组成部分,比如设置成qqq,则MyTestqqq将视为action,而MyTest则不是,访问时 会截去这个部分 --> <constant name="struts.convention.action.suffix" value="Action"/> <!-- 是否不扫描类,默认false即要扫描,设为true则所有访问无效(不排除未知情况) --> <constant name="struts.convention.action.disableScanning" value="false"/> <!-- 始终创建action映射,即使没有@Action被发现(具体情况不明) --> <constant name="struts.convention.action.mapAllMatches" value="false"/> <!-- 是否检查类是不是实现了com.opensymphony.xwork2.Action接口,默认为true,即只要实现了此 接口的类为被视为 Action,设为false则不进行检查,无论是否实现都会无视 --> <constant name="struts.convention.action.checkImplementsAction" value="true"/> <!-- 设置默认的父包 --> <constant name="struts.convention.default.parent.package" value="convention-default"/> <!-- 是否将Action类名转换成小写,默认true,例如MyTest访问的url名为my-test,设为false,则 为My-Test --> <constant name="struts.convention.action.name.lowercase" value="true"/> <!-- 名字分割符,即MyTest访问名为my-test,默认对应的页面为my-test-success.jsp --> <constant name="struts.convention.action.name.separator" value="-"/> <!-- 是否禁用包扫描,对应struts.convention.package.locators设置 --> <constant name="struts.convention.package.locators.disable" value="false"/> <!-- 设置包扫描的结构,默认为空,例如com.jd.web就只会扫描项目中此结构包下的 子包,忽略其他包 --> <constant name="struts.convention.package.locators.basePackage" value=""/> <!-- 默认返回结果类型 --> <constant name="struts.convention.relative.result.types"value="dispatcher,velocity,freemarker"/> <!-- 是否使用 / 作为重定向标示符,默认true,@Result(location="/test.jsp") 则会在server/项目名/这个路径下找test.jsp, 不加 / 则会在struts.convention.result.path这个常量配置的路径下找,若设为false则 / 无效--> <constant name="struts.convention.redirect.to.slash" value="true"/> <!-- 不是很清楚,测试结果为:设置成false则报没有no action mapped,应该是默认是否执行execute()方法 --> <constant name="struts.convention.action.alwaysMapExecute" value="true"/> <!-- 设定是否一直在最后一个斜线之前的任何位置选定namespace,测试结果为无任何影响,情况不明 --> <constant name="struts.mapper.alwaysSelectFullNamespace" value="true"/> <!-- 官方只说明在jboss下需要设置,情况不明 --> <constant name="struts.convention.exclude.parentClassLoader" value="true" /> <constant name="struts.convention.action.fileProtocols" value="jar" /> <!-- 是否自动重新加载action --> <constant name="struts.convention.classes.reload" value="false" />
7. Annotation(注解)
@Action(String value)
用来代替类名的访问名,例如MyTest类,在类级别上@Action(“abc”),则访问的action名为abc,而不是默认的my-test,此注解也可写在方法上,定义为访问该方法的action名。此注解受struts.convention.redirect.to.slash影响。返回视图为abc.jsp,忽略方法返回的字符串。
@Actions
包含一个@Action数组
格式:@Action({@Action() , @Action()})
@Result
定义方法返回的结果类型,参数,资源路径,此注解必须写在类级别上。
格式:@Result(name=”” , location=”” , type=”” , params={“”,”“})
name对应方法返回的字符串,location对应返回资源的路径,type对应返回资源类型
params对应返回结果的参数,格式params={“key0”,”value0”,”“key1,”value1”….”keyN”,”valueN”}
@Results
包含一个@Result数组
格式:参照@Actions
@Namespace
指定action的访问路径,会替换掉默认package的路径。
格式:@Namespace(String value)
例如:假设MyTest默认Namespace为/test,其访问路径为xxx/test/my-test。若设置为@Namespace(“abc”), 则访问路径为/abc/my-test。
注意:默认情况下action的访问路径必须和返回视图资源路径对应。
例如:假设默认搜索xxx.xxxx.xxx.web包下的action,MyTest类在web.action.test包下,则MyTest类中 方法默认情况返回搜索视图的路径为/WEB-INF/content/action/test/xxx.jsp
相关文章推荐
- Spring中数据库连接池的配置_me
- java 常用序列化和反序列化框架使用demo
- dwr框架与Spring整合
- eclipse 修改背景色 插件
- Java学习笔记--------异常处理
- Java-面向对象篇下《二》
- Java-面向对象篇上《二》
- java-基础《一》
- java实现文件重命名的方法
- java-异常篇《三》
- java 图片高质量缩放 (指定宽高)
- Spring中数据库连接池的三种配置(dbcp,c3p0,proxool)(转载)
- Java IO
- win7系统关于jdk软件安装以及配置
- SpringMVC与Struts2的对比
- java.util.ResourceBundle使用详解
- java中变量和方法的内存分析
- SPRING技术内幕-笔记(十一)spring事物处理的设计与实现
- Spring Framework 的一些资料
- Spring Resources