1. 零配置≠无配置。
2. 约定优于配置。
3. Struts2-convention-plugin.jar位于struts2/lib目录下。
4. 它提供基于annotation(注解)的方式来代替struts.xml。
5. 在该jar包下的struts-plugin.xml是对该插件的各种基本配置。它继承于struts-default。
如果需要改变配置,可以在struts.xml中进行常量声明和赋值来替换默认配置。
6. 常量说明(以下常量均为默认配置):
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
还有部分注解未尝试,如果上面这些不能解决,请google。
关于映射路径感觉不适应的情况,struts2提供了一个插件,可以查看当前项目所有action的映射情况。
将struts2/lib下的struts2-config-browser-plugin加入到项目的lib目录下,启动项目,url输入http://localhost:port/项目名/config-browser/index.action。