Action
public class OGNLAction extends ActionSupport{
/*
* ActionContext的数据存取
*
*在应用域中存入数据:用两种方法实现
*applicationMap: hello application map
*applicationAttr: hello application attr
*
*/
public String Demo1(){
//获取ActionContext
ActionContext context = ActionContext.getContext();
//存入数据
context.put("user","aaa");
//往应用域中存入数据
//第一种方式:使用原始的ServletAPI对象ServletContext
ServletContext applicationAttr = ServletActionContext.getServletContext();
applicationAttr.setAttribute("applicationAttr","hello application attr");
//第二种方法:根据key从ActionContext中获取应用域的map,往map存入数据
Map<String, Object> map = context.getApplication();
map.put("applicationMap", "hello application map");
//往会话域中存入数据
//第一种方式:使用原始的ServletAPI对象ServletContext
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("sessionAttr", "session");
//获取key为session的map
Map<String, Object> sessionMap = context.getSession();
sessionMap.put("sessionMap", "sessionMap");
return SUCCESS;
}
}
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 查看ContextMap中的内容 -->
<s:debug></s:debug>
<!--
借助struts2的s:property标签和ognl表达式获取ActionContext的数据
获取Map中的数据,OGNL表达式写法:
#key
-->
<s:property value="#user"/><br>
<s:property value="#application"/><br><br>
<!--
如果向下获取
-->
<s:property value="#application.applicationMap"/>
<s:property value="#session.sessionAttr"/>
</body>
</html>