struts2框架学习(二)

---恢复内容开始---

一、搭建步奏

  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 等等。

posted @ 2017-01-12 16:25  xullent  阅读(164)  评论(0编辑  收藏  举报