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

一、搭建步奏

  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. JQUERY简写案例

    源代码: <script ttype="text/javascript"> $(function(){ $(".btn").eq(0).click( ...

  2. leetcode[159] Longest Substring with At Most Two Distinct Characters

    找到最多含有两个不同字符的子串的最长长度.例如:eoeabc,最长的是eoe为3,其他都为2. 思路: 用p1,p2表示两种字符串的最后一个出现的下标位置.初始p1为0. p2为-1.start初始化 ...

  3. 【转】android json解析及简单例子

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  4. Android项目--获取系统通讯录列表

    ----------------- 通讯录列表 ----------------- 按常理来说,获取系统通讯录列表,无非就是将通讯录的数据库打开获取数据,适配,添加即可. Cursor cursor; ...

  5. jQuery 1.9 移除了 $.browser 的替代方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...

  6. EF6.0执行sql存储过程案例

    数据填充实体:ZF_Btns; 存储过程名称:test; --方式一: db.Database.SqlQuery<ZF_Btns>("test @Id,@UName output ...

  7. Apache Httpd Server 2.2升级2.4

    Apache Httpd Server 2.2升级2.4 (2 votes, average: 5.00 out of 5) 2,302 views 2012 年 3 月 20 日Web服务器.服务器 ...

  8. 基于嵌入式OS的任务设计-----任务划分

    在<前后台系统VS嵌入式OS,何时该上OS?>一文中介绍了何时应该将OS应用于嵌入式设计中,本文将介绍基于OS的任务设计,一般来说,应用程序设计包括两个方面,一个是业务逻辑的设计,另一个是 ...

  9. Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical

    http://julialang.org/ julia | source | downloads | docs | blog | community | teaching | publications ...

  10. SOLID 设计原则 In C# 代码实现

    [S] Single Responsibility Principle (单一职责原则) 认为一个对象应该仅只有一个单一的职责 namespace SingleResponsibilityPrinci ...