struts2入门---ActionContext

1.开发环境搭建

2.简单应用

我们在index.jsp里面这样写:

<a href="TestActionContext.action?name=zhoujing&age=21">Test ActionContext</a>

<%

  if(application.getAttribute("date") == null)
    application.setAttribute("date", new Date());
%>

现在我们编写一个java类TestActionContext

package com.struts.action;

import java.util.Map;

import org.apache.struts2.dispatcher.Parameter;

import com.opensymphony.xwork2.ActionContext;

public class TestActionContext {
    public String execute(){
        //0.  获取ActionContext 对象
        //ActionContext 是Action的上下文对象. 可以从当中获取到当前的Action需要的一切信息
        ActionContext actionContext = ActionContext.getContext(); 
        //通过调用ActionContext 对象的getApplication()方法来获取application对应的Map对象
        //1. 获取application 对应的map 并向其中添加一个属性
        Map<String, Object> applicationMap = actionContext.getApplication();
        //设置属性
        applicationMap.put("applicationKey", "applicationValue");
        //获取属性
        Object date = applicationMap.get("date");
        System.out.println("date: " + date);
        //2. session
        Map<String, Object> sessionMap = actionContext.getSession();
        sessionMap.put("sessionKey", "sessionValue");
        //3. request
        //ActionContext 中并没有提供getRequest方法来获取Request对应的Map对象
        //需要手工的调用get()方法传入request字符串来获取.
        Map<String, Object> requestMap = (Map<String, Object>) actionContext.get("request");
        requestMap.put("requestKey", "requestValue");
        //4. 获取请求参数对应的map, 并获取指定的参数值.
        //注意: 键: 请求参数的名字.值 : 请求参数的值  键值一一对应直接jsp页面可以直接 parameters.key获取值
        //   parameters这个Map只能读 ,不能写入数据, 如果写入,不出错, 但也不起作用.
        Map<String, Parameter> parameters = actionContext.getParameters();
        System.out.println(parameters.get("name"));
        System.out.println(parameters.get("age"));
        
        return "success";
    }
}

session与request的获取属性与application一样的所以就不展示了..

现在编写跳转后的显示页面test-actionContext.jsp

application: ${applicationScope.applicationKey } 
    <br><br>
    session: ${sessionScope.sessionKey }
    <br><br>
    request: ${requestScope.requestKey }
    <br><br>
    name: ${parameters.name}
    <br><br>
    age: ${parameters.age}

最后到达的效果就是这样

会用就好  原理以后用熟悉了自然就懂了......

文章未经版主同意不可任意转载,如有需要请标明文章出处。
原文地址:https://www.cnblogs.com/qihangzj/p/7208314.html