Struts2零配置

Struts2提供了按照约定和Java注解来替代struts.xml实现零配置的功能,但实际应用往往会两者结合使用。要想使用约定和注解只需将struts2-convention-plugin-2.1.8.1.jar放到WEB-INF\lib下,struts2框架就会将action、actions、struts和struts2下的所有以Action结尾或者继承SupportAction的类作为Action,当然我们也可以自己设置Action的上级包(在struts.xml中加上<constant name="struts.convention.package.locators"value="action" />),也可通过struts.convention.action.suffix常量设置Action类类名的后缀,默认为Action。然后在Action类上通过以下标注取代文件配置:
@Namespace("/login") 
@Results({
        @Result(name= LoginAction.LOGIN_PAGE, location ="/WEB-INF/jsp/layout/login.jsp"),

        @Result(name = LoginAction.USER_PAGE, location ="/WEB-INF/jsp/layout/userInfo.jsp")

})
public class LoginAction extendsActionSupport{ 
… 
}
例如一个类命名为SearchAction,那么Struts2框架会自动扫描它,认为它为一个Action类,并将所有search.action的请求都交给该类进行处理,这时我们遇到一个问题:Action类往往有多个method,那该如何指定处理方法呢?我们可以在请求中加上!methodName以请求该Action的指定method,例如想要请求SearchAction的search方法,我们可以这样请求:search!search.action。
 
我们都知道在XML中可以定义Action处理完以后的跳转,同样利用注解也可以做到这一点,我们只需要在Action类上加上@Result即可以指定Action的跳转,例如:         
@Results({     
        @Result(name="input"value="/input.jsp" type=NullResult.class),    
        @Reuslt(name="success"value="/success.jsp")
})         
上面是一个典型的多Result配置:name属性指定返回的字符串;value属性指定要跳转的页面;type属性指定Result的类型,type是一个很重要的属性,它有以下3种情况:         

1)NullResult :默认的,可省略         
2)ActionChainResult: 用于从一个Action跳转到另一个Action,例如:
@Result (name="search",value="search", type=ActionChainResult.class,  params={“method”, "search"})         
这个配置的意思是:如果返回值为"search"就跳转到SearchAction的search方法,如果不指定params就跳转到SearchAction的execute方法。
3)StreamResult:用于文件下载,例如:
@Result (name="success", value="inputStream",type=StreamResult.class, params={"bufferSize",FileConstant.DOWNLOAD_BUFFER_SIZE})
相关文档:

struts2:零配置 之 21.2 约定大于配置

struts-convention零配置--约定大于配置

Struts2 零配置----详解

Str----详解 

 
 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值