Strtus2注解

通过在Struts2中使用struts.xml和Struts2注解结合来配置Action,可以简化配置文件代码量,又使配置变得更加灵活。在Strtus2中有以下几个注解:
   
  • @ParentPackage:
  • @Namespace:
  • @Results和Result注解:

@ParentPackage:

它相当于<package>中的extends属性,也就是设置当前包的父包。其中它有一个value属性,它相当于<package>中的name属性值。

@Namespace

是用来指定当前包的命名空间的。它只有一个value属性,表示命名空间的名字。

@Results和@Result注解要在一起使用

@Results注解有一个@Result数组型的value 属性。
@Result注解有以下四个参数:

  • name:String类型,表示结果名,默认是Action.SUCCESS。
  • type: Class类型,相当于<result>标签的type属性,默认值是NullResult.class。
  • value:String类型,结果值,可以是有效的Web资源URL。
  • params:String[]类型。相当于<result>标签的<param>子标签。格式为{key1,key2..}
   
注意:Struts2注解有一个约定,Action名字就是名为XxxAction动作类的xxx。也就是说Action类为LoginAction,则Action类名为login。   
   
以下是convention-plugin的约定:以下修改都是在Struts.xml中。

1、struts.convention.result.path

默认所有的结果页面都存储在WEB-INF/content下,通过设置struts.convention.result.path这个属性的值来改变到其他路径。
Java代码   收藏代码
  1. <constant name="struts.convention.result.path" value="/" />  

这个表示所有的结果位于网站根目录下了。

2、struts.convention.package.locators

默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。通过设置struts.convention.package.locators属性来修改这个配置。
Java代码   收藏代码
  1. <constant name="struts.convention.package.locators" value="web,action" />   

这个表示包路径包含web和action的将被视为Action存在的路径来进行搜索。

3、命名空间从定义的.package.locators标示开始到包结束的部分,就是命名空间。

  Com.ustb.web.user.userAction的命名空间是:”/user”。
  Com.ustb.web.user.detail.UserAction的命名空间是:”/user/detail”

实例分析:

Java代码   收藏代码
  1. @Action(value="wsh",results={ @Result( name="success" , location="success.jsp"),  
  2.                               @Result( name="login"   , location="error.jsp"  )})  
  3.  public String execute()  {  
  4.   ActionContext context = ActionContext.getContext();  
  5.   HttpServletRequest request = (HttpServletRequest) context.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);  
  6.   String username = request.getParameter("username");  
  7.   String password = request.getParameter("password");  
  8.   if ("wsh".equals(username) && "butterfly".equals(password))   {  
  9.    return SUCCESS;  
  10.   }   else   {  
  11.    return LOGIN;  
  12.   }  
  13.  }  


struts.xml文件中的内容如下:
Java代码   收藏代码
  1. <constant name="struts.convention.package.locators" value="action" />  
  2. <constant name="struts.convention.result.path" value="/" /> 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值