struts2注解

1 Struts2注解的作用

使用注解可以用来替换struts.xml配置文件!!!

2 导包

  必须导入struts2-convention-plugin-2.3.15.jar包,它在struts2安装包下lib目录中。 

3 通过配置文件学习对应的注解

@Action来代替<action>元素!

l  String value():指定访问路径;

l  Result[] results():指定局部结果。

@Result来代替<result>元素!

l  String name():指定结果名称;

l  String location():指定结果路径。

@Namespace代替<package>的namespace属性:

l  String value():指定名称空间。

@ParentPackage代替<package>的extends属性:

l  String value():指定父包名称

@Namespace("/order")

@ParentPackage("struts-default")

publicclass OrderAction extends ActionSupport  {

    @Action(value="add", results={

           @Result(name="success", location="/index.jsp"),

           @Result(name="input", location="/add.jsp")})

    public String add() {

       System.out.println("add()");

       returnSUCCESS;

    }

    @Action(value="mod", results={@Result(name="success", location="/index.jsp")})

    public String mod() {

       System.out.println("mod()");

       returnSUCCESS;

    }

    @Action(value="del", results={@Result(name="success", location="/index.jsp")})

    public String del() {

       System.out.println("del()");

       returnSUCCESS;

    }

}

 

4 注解相关常量

  struts.convention.classes.reload,默认值为false。表示在修改注解后需要重启Tomcat!

 

Struts2约定(了解)

1 什么是约定

使用约定可以连注解都不写,是真正的零配置,但是它的能力有限,所以这种方式不可取的。

l  Struts2会对Action的命名,以及Action的包名都有限制;

l  Struts2会对结果页面的存放路径,以及结果页面的名称也都有限制。

  使用约定与使用注解一样,也要导包:struts2-convention-plugin-2.3.15.jar

1        约定对Action的限制

约定Action类名

要求Action的命名必须以“Action”为后缀,例如:UserAction、BookAction等等。可以使用下面常量来修改后缀限制:

<constant name="struts.convention.action.suffix" value="Action"/>

约定Action包名

要求Action必须放到action、actions、struts、struts2包中。例如:cn.itcast.action、cn.itcast.sturts、cn.itcast.action.user等等。可以使用下面常量来修改Actoin的包

<constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/>

3 通过Action的限制得到访问路径

上面已经知道约定对Action的限制,现在通过Action的包名和类名得到它的访问路径

例如:cn.itcast.action.UserAction,它的访问路径为/user.action

例如:cn.itcast.action.user.UserAction,它的访问路径为/user/user.action。因为在约定包action后面还有一层包user,那么这一层就是名称空间了。

例如:com.action.cn.itcast.user.UserAction,它的访问路径为/cn/itcast/user/user.action。

例如:cn.itcast.action.user.UserListAction, 它的访问路径为/user/user-list.action。当Action名称由多个单词构成,那么在访问路径中使用“-”来连接多个单词。

4 通过Action的限制得到结果页面路径

Struts2约定限制结果页面必须放到/WEB-INF/content/目录中,可以通过下面常量来修改这个限制。

<constant name="struts.convention.result.path" value="/WEB-INF/content/"/>

当cn.itcast.action.UserAction返回结果为success时,Struts会依次查找如下结果页面:

l  /WEB-INF/content/user-success.jsp;

l  /WEB-INF/content/user-success.html;

l  /WEB-INF/content/user.jsp

当cn.itcast.action.user.UserListAction返回的结果为error时,Struts会依次查找如下结果页面:

l  /WEB-INF/content/user/user-list-error.jsp;

l  /WEB-INF/content/user/user-list-error.html;

l  /WEB-INF/content/user/user-list.jsp。

 
18
1
 
 
 
 
 
 
猜你在找
【直播】机器学习&深度学习系统实战(唐宇迪)
【直播】Kaggle 神器:XGBoost 从基础到实战(冒教授)
【直播回放】深度学习基础与TensorFlow实践(王琛)
【直播】计算机视觉原理及实战(屈教授)
【直播】机器学习之凸优化(马博士)
【直播】机器学习之矩阵(黄博士)
【直播】机器学习之概率与统计推断(冒教授)
【直播】机器学习之数学基础
【直播】TensorFlow实战进阶(智亮)
【直播】深度学习30天系统实训(唐宇迪)
查看评论
3楼  chenxiang6891 2017-02-21 20:38发表 [回复]
例如:cn.itcast.action.UserAction,它的访问路径为/user.action
例如:cn.itcast.action.user.UserAction,它的访问路径为/user/user.action。因为在约定包action后面还有一层包user,那么这一层就是名称空间了。
例如:com.action.cn.itcast.user.UserAction,它的访问路径为/cn/itcast/user/user.action。
对于上面的写法,作者有做实践么?
<constant name="struts.convention.package.locators" value="action,actions.*"/>那么好像struts不能解析
cn.itcast.action.user.UserAction这种,只能解析出
cn.itcast.action.UserAction上面多了一层user目录,就不能解析
2楼  zhuyunxing_2016 2016-08-02 10:22发表 [回复] [引用] [举报]
如果想用json 需要引入 struts2-convention-plugin-2.3.30.jar
在action的头部切换@ParentPackage("struts-default")为 
@ParentPackage("json-default")
...Action extends ....{
//get方法加入@JSON(name="list")
private List list;

@Action(value="list", results={@Result(name="success",type="json", params={"root","list","includeProperties","*"})})
public String list(){ 
list=.....;
return SUCCESS;
}

@JSON(name="list")
public List getList() {
return list;
}
public void setList(List<WorkPeople> list) {
this.list = list;
}

转载于:https://www.cnblogs.com/ChenDianLJ/p/7266908.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值