---恢复内容开始---
一、搭建步奏
1、新建web项目,进行必备Jar包的拷贝,放到lib目录以便项目的引用。
2.拷贝框架的核心配置文件Struts.xml,放到src目录下,保留一个基本配置即可
3、在我们的web.xml文件中进行核心调度器的配置:StrutsPrepareAndExecuteFilter类是Struts2的控制器,用于过滤客户端的所有请求。它是Struts2框架的入口,如果未在web.xml中进行配置,Struts2框架就会失去作用。
<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>*.action</url-pattern>
</filter-mapping>
3.配置action:
<package name="book" extends="default"> <action name="book_*" class="com.xullent.struts.demo.action.GetBookAction" method="{1}"> <result name="list">/book/list.jsp</result> <result name="save">/book/save.jsp</result> <result name="add">/book/add.jsp</result> <result name="toIndex">/index.jsp</result> <!-- 登陆拦截器检查 , Action的配置都是引用--> <interceptor-ref name="Stack" /> </action> </package>
1) package:默认包,项目的所有包都可以继承这个包,获得一些默认的行为;可以设置namespace,namespace的作用:和java的package作用一样,防止重复路径。
2)action属性:
a) name:action请求的名称。
b) class:指定class类,默认不写为ActionSupport类。
c) method:指定处理逻辑的方法名。默认为excute方法。
d) 通配符:name使用通配符,method适配通配符
<action name="emp_*" class="com.chinasoft.struts2.demo.action.EmpAction" method="{1}">
</action>
e) result: name对于返回结果集;
resultType:返回方式:共四种:chain:转发Action;dispatcher:转发页面,默认值;redirect:主要是应用到页面的重定向,超链接;redirectAction:Struts2的action的重定向。
3)action类的写法:
a)实现Action,重写execute
public class EmpAction implements Action ,ModelDriven<Emp> { private Emp emp; private EmpService service = null; private List<Emp> emplist; /** * 默认走的方法 */ @Override public String execute() throws Exception { emplist = service.queryEmp(); return SUCCESS; } }
b)可以不继承,但是在默认情况下要有execute方法
c)实现ModelDriven<T>:实现getModel方法,该方法可以减少页面JavaBean类的长度和复杂度:
public User getModel() { if( user == null ) user = new User(); return user; }
d) 继承ServletActionContext,可以获得可以获得Servlet的API
//获得HttpSession,并放入属性: ActionContext.getContext().getSession().put("user", getUser().getName());
e) 继承ActionContext,获取Map对象,对应HttpServletRequest / HttpServletResponse 等等。