熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

struts2 session使用

2013-11-23 20:03:04  來源: Java開源技術 
在Struts如果需要在Action中使用session可以通過下面兩種方式得到
  
  通過ActionContext class中的方法getSession得到
  
  Action實現orgapachestrutsinterceptorSessionAware接口的方式來對session進行操作
  
  下面先看一個采用第一種方式在action中得到session的例子
  
  package sexaction;
  
  import javautilMap;
  
  import comopensymphonyxworkActionContext;
  
  import comopensymphonyxworkActionSupport;
  
  public class SessionTestAction extends ActionSupport {
  
  public String execute() {
  
  ActionContext actionContext = ActionContextgetContext()
  
  Map session = actionContextgetSession()
  
  sessionput(USER_NAME Test User
  
  return SUCCESS;
  
  }
  
  }
  
  在這個例子中通過ActionContext得到session並往session裡放置一個key為USER_NAME值為Test User的內容
  
  下面是一個實現orgapachestrutsinterceptorSessionAware接口來對session操作的例子
  
  package sexaction;
  
  import javautilMap;
  
  import orgapachestrutsinterceptorSessionAware;
  
  import comopensymphonyxworkActionSupport;
  
  public class SessionTestAction extends ActionSupport implements SessionAware {
  
  private Map session;
  
  public void setSession(Map session) {
  
  thissession = session;
  
  }
  
  public String execute() {
  
  thissessionput(USER_NAME Test User
  
  return SUCCESS;
  
  }
  
  }
  
  在這個例子中實現了接口SessionAware中的setSession方法
  
  上面兩種方式都可以得到session能實現的功能都是一樣的
  
  這裡推薦通過第二種方式來使用session原因是便於做單體測試用第二種方式只需要構造一個Map就可以對action class進行單體測試了
  
  在一個項目中可能會有很多action都需要用到session如果每個action都來實現 orgapachestrutsinterceptorSessionAware這個接口可能會顯得比較麻煩所以建議作一個抽象的 BaseAction類來實現orgapachestrutsinterceptorSessionAware接口以後所有的action只要繼承這個BaseAction就可以了
  
  下面是一個如何在JSP中使用session的例子
  
  <%@ page contentType=text/html; charset=UTF %>
  
  <%@page pageEncoding=utf %>
  
  <%@taglib prefix=s uri=/strutstags %>
  
  <html>
  
  <head>
  
  <title>Session Test</title>
  
  </head>
  
  <body>
  
  <h><s:property value=#sessionUSER_NAME/></h>
  
  </body>
  
  </html>
  
  一般在項目中往往會往session裡放置一個Object必如說useruser裡有個boolean admin和String userName如果user裡存在isAdmin的方法在jsp中可以通過<s:if test=#sessionuseradmin>來判斷用戶有沒有管理權限通過<s:property value=#sessionuseruserName>或者來取得用戶名
From:http://tw.wingwit.com/Article/program/Java/ky/201311/27858.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.