您的位置:首页 > 移动开发

Struts2系列:(35)request、session、application和ognl

2016-07-28 09:09 369 查看
在Action当中,获取request、session和application的方法如下:
public String findEmpById()
{
int id = 6;
Employee emp = employeeService.findById(id);
Employee emp1 = employeeService.findById(1);
Employee emp2 = employeeService.findById(2);
Employee emp3 = employeeService.findById(3);
Employee emp4 = employeeService.findById(4);
Employee emp5 = employeeService.findById(5);
Employee emp6 = employeeService.findById(6);
ActionContext context = ActionContext.getContext();

//存储到ValueStack上
ValueStack valueStack = context.getValueStack();
valueStack.push(emp);

//存储到request Map上
Map<String, Object> requestMap = (Map<String, Object>) context.get("request");
requestMap.put("requestMap_emp", emp1);

//存储到HttpServletRequest上
HttpServletRequest request = (HttpServletRequest)context.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
request.setAttribute("request_emp", emp2);

//存储到session Map上
Map<String, Object> sessionMap = context.getSession();
Map<String, Object> sessionMap2 = (Map<String, Object>) context.get("session");
System.out.println("sessionMap: " + ( sessionMap == sessionMap2));//结果为true
sessionMap.put("sessionMap_emp", emp3);

//存储到HttpSession上
HttpSession session = request.getSession();
session.setAttribute("session_emp", emp4);

//存储到application Map上
Map<String, Object> applicationMap = (Map<String, Object>) context.get(ActionContext.APPLICATION);
Map<String, Object> applicationMap2 = (Map<String, Object>) context.get("application");
System.out.println("applicationMap: " + (applicationMap == applicationMap2)); //结果为true
applicationMap.put("applicationMap_emp", emp5);

//存储到ServletContext上
ServletContext application = (ServletContext) context.get(org.apache.struts2.StrutsStatics.SERVLET_CONTEXT);
application.setAttribute("application_emp", emp6);

String actionName = (String) context.get(ActionContext.ACTION_NAME);
System.out.println(actionName);

return Action.SUCCESS;
}


在JSP页面读取,相关request、session和application数据的方法如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>

<body>
This is my JSP page. <br>
<h1>1.读取ValueStack上的数据</h1>
<s:property value="empName"/><br>
<s:property value="dept"/><br>

<h1>2.读取request Map上的数据</h1>
OGNL:<s:property value="#request.requestMap_emp.empName"/><br>
JSTL EL:${requestMap_emp.empName }<br>

<h1>3.读取HttpServletRequest上的数据</h1>
OGNL:<s:property value="#request.request_emp.empName"/><br>
JSTL EL:${request_emp.empName }<br>

<h1>4.读取session Map上的数据</h1>
OGNL:<s:property value="#session.sessionMap_emp.empName"/><br>
JSTL EL:${sessionScope.sessionMap_emp.empName }<br>

<h1>5.读取HttpSession上的数据</h1>
OGNL:<s:property value="#session.session_emp.empName"/><br>
JSTL EL:${session_emp.empName }<br>

<h1>6.读取application Map上的数据</h1>
OGNL:<s:property value="#application.applicationMap_emp.empName"/><br>
JSTL EL:${applicationMap_emp.empName }<br>

<h1>7.读取ServletContext上的数据</h1>
OGNL:<s:property value="#application.application_emp.empName"/><br>
JSTL EL:${application_emp.empName }<br>
<s:debug/>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts