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

一、搭建步奏

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

struts2框架学习(二)的更多相关文章

  1. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  2. Struts2框架学习(二)——访问流程及架构

    1.Struts2的执行流程 从客户端发送请求过来,先经过前端控制器(核心过滤器StrutsPrepareAndExecuteFilter)过滤器中执行一组拦截器(一组拦截器就会完成部分功能代码),拦 ...

  3. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  4. Struts2框架学习(一)

    Struts2框架学习(一) 1,Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发.框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2 ...

  5. Java之struts2框架学习

    Java之struts2框架学习 About Struts2 Struts也是一款MVC框架 , Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全 ...

  6. [ SSH框架 ] Struts2框架学习之二

    一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Str ...

  7. [ SSH框架 ] Struts2框架学习之一

    一.Struts2框架的概述 Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中.目前掌握 Struts2框架几乎成为 ...

  8. [ SSH框架 ] Struts2框架学习之四(自定义拦截器)

    一.Struts2的拦截器 1.1 拦截器概述 拦截器,在AOP( Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截 ...

  9. Struts2基础学习(二)—Action

    一.ActionSupport      为了让用户开发的Action类更加规范,Struts2提供了一个Action接口,这个接口定义了Struts2的Action处理类应该实现的规范.下面是标准A ...

随机推荐

  1. Ubuntu12.04环境搭建遇到的问题和建议(一个)

    后的新公司需要在Ubuntu12.04在结构Android开发环境,在这个过程中,我们还是会遇到很多问题,这里记录.为了方便自己的未来,有人谁需要参考.从网络! 1. Q:在终端: sudo apt- ...

  2. 方向梯度直方图(HOG)和颜色直方图的一些比較

    近期在学习视频检索领域的镜头切割方面的知识,发现经常使用的方法是直方图的方法,所以才专门有时间来学习下.查看到这两种直方图的时候,感觉有点接近,好像又不同,放在这做个比較.大部分还是百科的内容,只是对 ...

  3. Android开源框架Volley(Google IO 2013)源代码及内部实现分析

    1.Volley概述 在项目开发过 程中,博主曾写过大量的访问网络重复代码,特别是ListView adapter很难避免getView()方法不被重复调用,如果ImageView不利用缓存机制,那么 ...

  4. 【分享】LateX排版软件学习教程合集

    来源于:http://www.hejizhan.com/html/xueke/416/x416_13.html  LATEX2e科技排版指南.pdf 8.3 MB  An Example LaTeX ...

  5. 如何使用MacVim

    如何使用MacVim 如何使用MacVim 如何使用MacVim呢? 命令模式 按下ESC 高效率移动 1.在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就 ...

  6. [Usaco2007 Dec]穿越泥地[bfs][水]

    Description 清早6:00,Farmer John就离开了他的屋子,开始了他的例行工作:为贝茜挤奶.前一天晚上,整个农场刚经受过一场瓢泼大雨的洗礼,于是不难想见,FJ 现在面对的是一大片泥泞 ...

  7. Web Builder

    Web Builder http://www.doc88.com/p-1748774598960.html 初次接触Infopath,我就被它的强大的功能,灵活的表单制作方式,全面对Web Servi ...

  8. C/C++基础知识总结——数据的共享与保护

    1. 标识符的作用域与可见性 1.1 作用域 标识符的作用域包括:函数原型作用域.局部作用域.类作用域.命名空间作用域 (1) 函数原型作用域:函数的参与的作用域就是从函数的开始到结束 (2) 局部作 ...

  9. 企业架构研究总结(30)——TOGAF架构内容框架之内容元模型(上)

    2. 内容元模型(Content Metamodel) 在TOGAF的眼中,企业架构是以一系列架构构建块为基础的,并将目录.矩阵和图形作为其具体展现方式.如果我们把这些表述方式看作为构建块的语法,那么 ...

  10. C#快速学习

    C#快速学习笔记(译)   下面是通过代码快速学习C#的例子. 1.学习任何语言都必定会学到的hello,world! using System; public class HelloWorld { ...