Struts2源码阅读系列之Struts2简单例子

第一个Struts2程序,我们需要完成下面的事项:

l           在web.xml中增加Filter(过滤器)配置

l           编写Action

l           编写Struts2的配置文件

l           编写JSP

引入依赖包

我们的第一个Struts2应用程序,将基于最新的struts2版本:struts2.2.1版本。我们首先创建一个Web应用程序,引入下列依赖包:

这些依赖包,可以从Struts2.2.1的解压目录下的apps/struts2-blank-2.2.1.war文件中获得。

Commons-fileupload和commons-io是文件上传必须的依赖包。

Freemarker是struts2中的HTML相关标签库(taglib)的依赖包

Javassist和ognl是OGNL相关依赖包(OGNL是Struts2中的表达式语言,非常核心的依赖包)

Struts2-core就是struts2本身的类库

Xwork-core是struts2非常核心的依赖包,正是它确定了请求处理的基本过程(它原本属于webwork)。

在web.xml中增加过滤器配置

 1     <filter>
 2 
 3         <filter-name>struts2</filter-name>
 4 
 5         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 6 
 7     </filter>
 8 
 9  
10 
11     <filter-mapping>
12 
13         <filter-name>struts2</filter-name>
14 
15         <url-pattern>/*</url-pattern>
16 
17     </filter-mapping>

这个过滤器要过滤所有的请求。

编写Action类 

这个Action类已经是简单到不能再简单了!

增加Struts2的配置文件

 1   public class FirstAction {
 2  
 3       public String hello(){
 4   
 5          //每次调用,都是不同的对象!
 6   
 7       System.out.println("世界,你好"+this);
 8  
 9        return "success";
10  
11      }
12  
13  }

 

类路径的根目录下,添加一个名为struts.xml的文件,内容如下:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 
 3 <!DOCTYPE struts PUBLIC
 4 
 5     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 6 
 7     "http://struts.apache.org/dtds/struts-2.0.dtd">
 8 
 9  
10 
11 <struts>
12 
13     <package name="test" namespace="/test" extends="struts-default">
14 
15        <action
16 
17            name="hello"
18 
19            class="cn.com.leadfar.struts2.action.FirstAction"
20 
21            method="hello"
22 
23        >
24 
25            <result name="success">/first.jsp</result>
26 
27        </action>
28 
29     </package>
30 
31 </struts>
32 
33  

 

 

Package中的name属性是必须的,它可以是随意的一个名称,namespace是用来定义访问Action的URL地址前缀(马上就介绍如何访问这个Action),它必须以“/”开头;extends表示本配置是继承另外一个package中的配置信息(struts-default是struts2中的默认package)。

Action配置中的name是用来定义如何访问Action的;class当然就是对应的action类了;method表示访问action的哪个方法;result定义的是这个action调用的返回值代表的是转向哪里!

编写JSP

请随意编写一个JSP:first.jsp,并放置在web应用部署的根目录下。

访问Action

请在浏览器地址栏输入:

 1 http://localhost:[端口]/[Context Path]/test/hello.action  

posted @ 2014-11-05 12:49  韩慧兵  阅读(424)  评论(0编辑  收藏  举报