当注解配置能够简化繁杂的xml,你是否想过也要使用注解?
最近对原有项目的框架使用的Struts2进行升级。很早以前就想尝试注解的方式进行配置。但是由于项目稳定性和改配置方式可能带来的问题一直没有进行。但是这不妨碍我们程序员求知的心。哈哈~~~~。
言归正传,开始Struts2最常用的几个注解的学习吧。
废话少说代码说事儿。
package com.example.actions; import org.apache.struts2.convention.annotation.Action; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld2 extends ActionSupport { @Action("/different/url") public String execute() { return SUCCESS; } }
原本在没有@Action("/different/url")注解的情况下,我们可以在浏览器中输入:http://应用服务器ip:端口/应用/hello-world2,即可访问到com.example.actions.HelloWorld2,并最终显示http://应用服务器ip:端口/应用/hello-world2.jsp页面。(当然这里也可能是html等页面)。
在@Action("/different/url")注解的情况下,除了上述的访问方式外,我们还可以在浏览器中输入:http://应用服务器ip:端口/应用
/different/url,也可访问到com.example.actions.HelloWorld2,但最终显示http://应用服务器ip:端口/应用/different/url.jsp页面。
还是先上代码
package com.example.actions; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Actions; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld3 extends ActionSupport { private String message; public String getMessage() { return message; } @Actions( { @Action("/one/url"), @Action("/another/url") }) public String execute() { message = "经过HelloWorld3的处理"; return SUCCESS; } }
即:
通过http://应用服务器ip:端口/应用/one/url,访问com.example.actions.HelloWorld3,并最终显示http://应用服务器ip:端口/应用/one/url.jsp。
通过http://应用服务器ip:端口/应用/another/url,访问com.example.actions.HelloWorld3,并最终显示http://应用服务器ip:端口/应用/another/url.jsp。
这样就达到了一个ACTION中的一个方法,响应多个不同的URL的效果。
package com.example.actions; import org.apache.struts2.convention.annotation.Action; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld4 extends ActionSupport { private String message; public String getMessage() { return message; } @Action("/H4/url") public String execute() { message = "HelloWorld4 execute()!"; return SUCCESS; } @Action("url") public String doSomething() { message = "HelloWorld4 doSomething()!"; return SUCCESS; } }
这个例子里面需要注意的是@Action("/H4/url")和@Action("url")的不同,在“url”前并没有“/”这意味着"url"是基于HelloWorld4的命名空间的。假设HelloWorld4所在的包是com.example.actions.aaa,那么,只有通过http://应用服务器ip:端口/应用/aaa/url才可以访问到com.example.actions.aaa.HelloWorld4,并最终显示http://应用服务器ip:端口/应用/aaa/url.jsp。而“/H4/url”是基于“/”命名空间的。
日后再继续学习@Results和@Result。