Struts2入门实例
一、struts2概述
本图描述了 Struts2 中的主要部件,以及请求处理过程。Struts2 也是基于请求-响应模式!
Struts2 是一个 MVC 框架。主要用于呈现层的开发。
Struts2 提供了一个 StrutsPrepareAndExecuteFilter 来处理所有的请求,这个 Filter 将根据
Struts2 配置文件的指示,符合要求的客户端请求,将会被转交给 Action 来处理;Action 处理完之后,
Struts2 将负责转向视图进行呈现。
二、struts2开发步骤
1.在web.xml中配置过滤器
2.编写Action
3.编写Struts2配置文件
4.编写JSP
*首先创建一个web projects,引入如下依赖包,如图:
各依赖包作用:
Commons-fileupload 和 commons-io 是文件上传必须的依赖包。
Freemarker 是 struts2 中的 HTML 相关标签库(taglib)的依赖包
Javassist 和 ognl 是 OGNL 相关依赖包(OGNL 是 Struts2 中的表达式语言,非常核心的依赖 包)
Struts2-core 就是 struts2 本身的类库
Xwork-core 是 struts2 非常核心的依赖包,正是它确定了请求处理的基本过程
*在web.xml中增加过滤器
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
*在类的根路径下增加struts2.xml配置文件,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="system" namespace="/test" extends="struts-default">
<action
name="user"
class="cn.com.test.struts2.action.UserAction " method="add" >
<result name="success">pages/first.jsp</result>
</action>
</package>
</struts>
其中package中name属性可以是任意的,namespace用来定义访问Action的url目录,必须以"/"开头.extends 表示本配置是继承另外一个package >
Action配置中name是定义如何访问action,class是对应的action类,method:是对应的action中的方法,result 定义的是这个 action 调用的返回值代表的是转向的页面
*编写相应的Action
public class UserAction extends ActionSupport implements ModelDriven{
private User user;
@Override
public Object getModel() {
if(user == null){
user = new User();
}
return user;
}
public String addInput(){
return "add_input";
}
public String add(){
new UserManager().addUser(user);
return "success";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
*编写一个jsp为first.jsp,将其部署到服务器上
通过http://localhost:[端口]/[Context Path]/test/user.action 即可访问Action
关于访问action路径可设置扩展名 ,缺省以.action 结尾,请参考:default.properties 文件,可以通过配置改变这一点: <constant name="struts.action.extension" value="action,do,webwork" /> 上述配置,将使得可以通过.action 或.do 或.webwork 访问 Action 对象