使用OGNL获得session中的值

来源:互联网 发布:minecraft可视化编程 编辑:程序博客网 时间:2024/05/19 15:24
原文用
ActionContext context = ActionContext.getContext();
Map session = context.getSession();
这样得不到session

必须实现SessionAware接口,然后对Map session属性用setter,getter

另外,表单中的所有元素都用struts2的标签,然后jsp页面的编码全设置成utf-8,就没有中文乱码了。

<%@ 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><h1>Access_Value_of_bean_from_session_OGNL</h1><hr /><table bgcolor="#CC99FF"><tr><td>Please enter the Name and Profile....<DIV style="color: pink;"><s:actionerror /></DIV> <s:form action="setbeanInsession"><s:select label="Language" headerKey="none" name="lang"headerValue="Select Language" list="langName"></s:select><s:textfield name="empName" label="Employee Name"></s:textfield><s:submit></s:submit></s:form></td></tr></table></body></html>

package roseindia.action;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.struts2.interceptor.SessionAware;import roseindia.model.EmployeeBean;public class OGNLOnsessionObject extends ActionSupport implements SessionAware {private static final long serialVersionUID = 1L;private List langName;private String lang;private String empName;ActionContext context = ActionContext.getContext();Map session;// Map session=new HashMap();public Map getSession() {return session;}public void setSession(Map session) {this.session = session;}public String getLang() {return lang;}public void setLang(String lang) {this.lang = lang;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}public List getLangName() {return langName;}public void setLangName(List langName) {this.langName = langName;}public OGNLOnsessionObject() {langName = new ArrayList();langName.add("C");langName.add("c++");langName.add("JAVA");langName.add("PHP");}public String show() {return INPUT;}public String execute() {if (lang.equals("none")) {this.addActionError("Please select any language.");return ERROR;}ArrayList beans = null;EmployeeBean bean = new EmployeeBean();bean.setEmpName(empName);bean.setLang(lang);if (session == null) {System.out.println("session is null");}beans = (ArrayList) session.get("beans");if (beans == null)beans = new ArrayList();beans.add(bean);session.put("beans", beans);return SUCCESS;}}

<s:iterator id="beans" value="#session['beans']"><tr><td><s:property value="empName" /></td><td><s:property value="lang" /></td></tr></s:iterator>

在浏览器中,通过后退按钮再提交一次,就可以得到2条记录:


原文:http://www.roseindia.net/struts/struts/struts2.2.1/tags/sessionValue.html

源代码:http://pan.baidu.com/share/link?shareid=474784&uk=3878681452

原创粉丝点击