struts注解配置

来源:互联网 发布:试卷制作软件 编辑:程序博客网 时间:2024/06/11 20:53

零配置

Struts使用Convention Plugin实现零配置,需要导入org.apache.struts.jar包,
默认下包含action的包名应该以action结尾,才能够扫描的出来。



Action配置

1.Action默认的映射

package com.example.actions.text;import com.opensymphony.xwork2.ActionSupport;public class HelloWorldAction extends ActionSupport {  public String execute() {    return SUCCESS;  }}


匹配URL 应用/命名空间/处理过的类名
上例匹配URL 应用/text/hello-world 
显示资源路径在WEB-INF/content/下,匹配的具体资源和返回只有关,具体参看docs文档

说明:
默认情况下只有实现了Action接口的类才能算是Action
默认情况下匹配的类名去除类名后面的action,单词和单词之间用"-"连接,大写转化为小写。
这些配置在Convention Plugin配置中可以更改。

2.使用@Action配置

package com.example.actions.textspace;import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Actions; public class HelloWorld extends ActionSupport {  @Action("/different/url")  //这里给出了Namespace,默认的包名Namespace不可用了。  public String execute() {    return SUCCESS;  }   @Action("url")  //这里没有给出Namespace,默认是包名的Namespace。匹配URL textspace/url  public String doSomething() {    return SUCCESS;  }}


3.chain连锁反应


package com.example.actions; import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionSupport; public class HelloAction extends ActionSupport {    @Action("foo")    public String foo() {        return "bar";    }     @Action("foo-bar")    public String bar() {        return SUCCESS;    }}


当action执行后找不到返回的result,就会在包下找 Action名-返回值 的Action,
如果找到了就执行,要想连锁反应发生,本例中WEB-INF/content/foo-bar.jsp不能存在。

Result配置(Exception配置 InterceptorRef配置 )

1.全局Result

在类层面上配置

2.局部Result

在Action里面配置


Namespace配置

package com.example.actions; import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace; @Namespace("/custom")//用在类层面上Namespace对所有的Action都有用,public class HelloWorld extends ActionSupport {  @Action("/different/url")  //对于这个Action有URL匹配,/differnt/url  public String execute() {    return SUCCESS;  }   @Action("url")  //这个只有URL匹配 /custom/url  public String doSomething() {    return SUCCESS;  }}


类似于一种就进原则,

其他相关

ResultPath annotation

设置Result默认路径,默认为WEB-INF/content/ 
当@Result(location="a.jsp") 会去 应用名/WEB-INF/content/名称空间/a.jsp中查找。
设置@ResultPath("/") 就会去 应用名/名称空间/a.jsp

ParentPackage annotation

配置Action继承的父包。

自动加载配置文件不用重启服务器

<constant name="struts.devMode" value="true"/>
<constant name="struts.convention.classes.reload" value="true" />
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机图片字模糊怎么办 天然气手册丢了怎么办 消消乐登录异常怎么办 新手想学考古怎么办 省份证改名字怎么办 文曲星放太久开不了机怎么办 小狗吃火腿肠皮怎么办 虚火引起的牙痛怎么办 牙髓炎怎么办立刻止疼 小蜜丸吃不下去怎么办 铜钱的字不认识怎么办 古钱币出手好烦怎么办 安装目录不可写怎么办 手机不支持exfat格式怎么办 windows7图标变大了怎么办 igs格式烂曲面怎么办 手机桌面文件夹打不开怎么办 苹果下载不了150怎么办 iphone6速度变慢怎么办 苹果手机微信打不开pdf怎么办 苹果手机打不开pdf怎么办 pdf文件超过了怎么办 pdf电脑删不了怎么办 联想笔记本摄像头横屏调竖屏怎么办 pdf文件打开失败怎么办 pdf复制文字乱码怎么办 电子发票乱码了怎么办 超星尔雅挂了怎么办 电脑应用双击打不开怎么办 电脑控制面板打不开怎么办 转换器无法打开文件怎么办 电脑文件无法打开怎么办 手机上jpg打不开怎么办 脸上全是黄褐斑怎么办 容易发胖的体质怎么办 感冒后一直咳嗽怎么办 感冒咳嗽怎么办小窍门 到了减肥平台期怎么办 减肥遇见平台期怎么办 脚冻伤了痒怎么办 冬天脚后跟冻了怎么办