Struts2 day02

1.复习 day01

1.1 : 什么是 Struts2 ?

  • 运行在 Web 层,基于过滤器,负责处理请求的.
  • 封装了很多常用功能(拦截器).
  • Struts1 基于 Servlet, Struts2 基于 WebWork .

1.2 : Struts2 框架搭建

  • 引入 jar 包.
  • 书写 Action 类.
  • struts.xml 中配置 package , package 中配置 Action
  • web.xml 中配置过滤器

1.3 : Struts2 架构
1.4 : 配置详解

  • 核心配置
  • 常量配置
// 解决乱码
// 后缀名配置
// 开发模式
// 开启动态方法调用 [!]

1.5 : Action 创建

  • POJO 类.
  • 实现 Action 接口.
  • 基础 ActionSupport 类.
public String xx() throws Exception{};

2.Struts2 访问 Servlet 的 API

需求 : 如何接受表单中的参数,如何向页面保存一些数据

2.1 : 通过 ActionContext 类来访问 Servlet 的 API.

ActionContext 是 Action 执行的上下文对象, ActionContext 中保存了 Action 执行所需要的所有对象,包括 parameters request session application等.

ActionContext 访问 Servlet API的常用方法 :

  • void put(String key, Object value) : 将 key-value 放入 ActionContext 中,模拟 Servlet API 中的 HttpServletRequest 的 setAttribute() 方法.
  • Object get(String key) : 通过参数 key 查找 ActionContext 中的值.
  • Map getApplication() : 返回一个 Application 级的 Map
    对象.
  • static ActionContext getContext() : 返回当前线程的 ActionContext 对象.
  • Map getParameters() : 返回一个包含所有 HttpServletRequest 的参数信息的 Map .
  • Map getSession() : 返回一个 Map 类型的 H偷偷跑Session 对象.
  • void setApplication(Map application) : 设置 Application 上下文.
  • void setSession(Map : 设置一个 Map 类型的 Session .

2.2 : 通过特定接口访问

通过 ActionContext 虽然可以访问 Servlet API ,但是无法获取 Servlet API 实例.为了在 Action 中直接访问 Servlet API ,Struts2 还提供了一系列接口

  • ServletRequsetAware : 实现该接口,可直接访问 WEB 应用的 HttpServletRequest 实例.
  • ServletResponseAware : 实现该接口,可直接访问 WEB 应用的
    HttpServletResponse 实例.
  • SessionAware : 实现该接口,可直接访问 WEB 应用的 Session 实例.
  • ServletContextAware : 实现该接口,可直接访问 WEB 应用的 ServletContext 实例.

2.3 : 通过 ServletActionContext 访问

方法如下 :

  • static HttpServletRequest getRequest()
  • static HttpServletResponse getResponse()
  • static PageContext getPageContext() : 获取 WEB 应用的 PageContext 对象.
  • static ServletContext getServlet Context()
3.结果页面的配置

使用 标签,元素有 name 和 type ,两个都不是必填属性. name 属性默认值为 success , type 属性默认值为 dispatcher .
在结果页面的配置中, Struts2 有 全局结果页面 和 局部结果页面 两种.

3.1 : 全局结果页面

在同一个包下面配置的 Action 中返回的相同的字符串的值,都可以跳转到该页面.需要通过 来配置.


    /success.jsp

3.2 : 局部结果页面

某个 Action 中根据该字符串的值进行跳转,只对这个 Action 有效.

/success.jsp

3.3 : 提前预定义的 Result-Type

其实就是定义了多种展示结果的技术.

Struts2 day02_第1张图片
result-type.png

红色记忆,其他了解..

4.Struts2 的数据封装

需求 : 请求提交到 Action , Action 中要将参数封装为 JavaBean .Struts2 提供了 属性驱动 和 模型驱动 两种方式.

4.1 : 属性驱动

属性驱动可以细分为两种,一种只需要提供属性的 set 方法即可,另一种可以通过表达式方式直接封装到对象中.

4.1.1 : 属性驱动方式一 : 提供属性的 set 方法.

public class HelloAction extends ActionSupport{
    private String name;
    public void setName(String name){
        this.name = name;
    }
    @Override
    public String ecexute() throws Exception{
        System.out.println(name);
        return NONE;
    }
}

4.1.2 : 页面提供表达式方式.

4.2 : 模型驱动

Action 需实现 ModelDriven 接口,重写方法 getModel() .

5.Struts2 中封装集合类型的数据

5.1 : 封装到 List 集合中

5.2 : 封装到 Map 集合中

你可能感兴趣的:(Struts2 day02)