1.新建一个web项目,取名为struts2.
2.加入struts2的相关jar文件,将struts.xml文件拷贝进src目录下。将修改过的web.xml文件拷贝至struts2/WebRoot/WEB-INF/下。
3.新建一个Action:HelloWorldAction。其代码如下:
1
package
com.xiaobai.struts.action;
2
3 public class HelloWorldAction {
4 private String msg;
5
6 public String getMessage() {
7 return msg;
8 }
9
10 public String execute(){
11 msg = "我的第一个struts2应用";
12 return "success";
13 }
14}
4.修改strut.xml文件:在<struts></struts>标签对中加入以下配置:
2
3 public class HelloWorldAction {
4 private String msg;
5
6 public String getMessage() {
7 return msg;
8 }
9
10 public String execute(){
11 msg = "我的第一个struts2应用";
12 return "success";
13 }
14}
1
<
package
name
="hello"
namespace
="/action"
extends
="struts-default"
>
2 < action name ="helloworld" class ="com.xiaobai.struts.action.HelloWorldAction" method ="execute" >
3 < result name ="success" > /WEB-INF/page/hello.jsp </ result >
4 </ action >
5 </ package >
2 < action name ="helloworld" class ="com.xiaobai.struts.action.HelloWorldAction" method ="execute" >
3 < result name ="success" > /WEB-INF/page/hello.jsp </ result >
4 </ action >
5 </ package >
5.部署该项目。并且启动Tomcat服务器,访问 http://localhost:8080/struts2/action/helloworld
看到如下图所示的结果:
下面对写的代码及配置做一点解释:
1.<package>标签的namespace属性可以作为action访问路径的一部分。不设置该属性或将其设置为""(空字符串)则为默认命名空间。例如上面的package属性设置为"/action",action标签的name属性设置为"helloworld",所以访问该action的路径应为/action/helloworld,这也就是上面这个应用的访问地址是 http://localhost:8080/struts2/action/helloworld的原因。
2.一般情况下,package都应当继承自struts-default包,即,将package的extends属性设置为"struts-default",这样才能获得struts2的许多功能。
3.action的method属性主要是定义将请求交给action中的哪个方法来处理。
4.result标签中的name属性值对应action中的处理方法(这里是execute方法)的返回值,用来定义在该返回值的情况下如何进行转向。
上面的应用中的jsp文件放置在WEB-INF文件下,主要是为了不让用户直接访问到jsp页面,而是通过访问action,并通过action的控制来访问信息。
(ps:用户直接访问jsp文件也无法获得msg的值)