<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Struts2中Session的使用

    在Struts2里,如果需要在Action中使用session,可以通過下面兩種方式得到
    1.通過ActionContext class中的方法getSession得到
    2.Action實現org.apache.struts2.interceptor.SessionAware接口的方式來對session進行操作
     
    下面先看一個采用第一種方式,在action中得到session的例子
    package s2.ex.action; 


    import java.util.Map; 


    import com.opensymphony.xwork2.ActionContext; 

    import com.opensymphony.xwork2.ActionSupport; 


    public class SessionTestAction extends ActionSupport 


        
    public String execute() 

         ActionContext actionContext 
    = ActionContext.getContext(); 

           Map session 
    = actionContext.getSession(); 

           session.put(
    "USER_NAME""Test User"); 

           
    return SUCCESS; 

        }
     

    }

    在這個例子中,通過ActionContext得到session,并往session里放置一個key為USER_NAME,值為Test User的內容。
     
    下面是一個實現org.apache.struts2.interceptor.SessionAware接口來對session操作的例子
    package s2.ex.action; 


    import java.util.Map; 


    import org.apache.struts2.interceptor.SessionAware; 


    import com.opensymphony.xwork2.ActionSupport; 


    public class SessionTest1Action extends ActionSupport implements SessionAware 

        
    private Map session; 

        
    public void setSession(Map session) 

           
    this.session = session; 


        }
     

        
    public String execute() 

           
    this.session.put("USER_NAME""Test User 1"); 

           
    return SUCCESS; 

        }
     

    }

    在這個例子中實現了接口SessionAware中的setSession方法。
     
    上面兩種方式都可以得到session,能實現的功能都是一樣的。
    這里推薦通過第二種方式來使用session,原因是便于做單體測試,用第二種方式,只需要構造一個Map就可以對action class進行單體測試了。

        在一個項目中可能會有很多action都需要用到session,如果每個action都來實現org.apache.struts2.interceptor.SessionAware這個接口,可能會顯得比較麻煩,所以建議作一個抽象的BaseAction類來實現org.apache.struts2.interceptor.SessionAware接口,以后所有的action只要繼承這個BaseAction就可以了。
     
    下面是一個如何在JSP中使用session的例子。

    <%@ page contentType="text/html; charset=UTF-8" %> 

    <%@page pageEncoding="utf-8" %> 

    <%@taglib prefix="s" uri="/struts-tags" %> 

    <html> 

    <head> 

        
    <title>Session Test</title> 

    </head> 


    <body> 

    <h1><s:property value="#session.USER_NAME"/></h1> 

    <h1></h1> 

    </body> 

    </html>

    一般在項目中往往會往session里放置一個Object,必如說user,user里有個boolean admin和String userName,如果user里存在isAdmin的方法,在jsp中可以通過<s:if test="#session.user.admin">來判斷用戶有沒有管理權限,通過<s:property value="#session.user.userName">或者來取得用戶名。


    posted on 2008-04-14 16:57 々上善若水々 閱讀(3845) 評論(0)  編輯  收藏 所屬分類: Struts2

    主站蜘蛛池模板: 男女啪啪永久免费观看网站| 久久久久久国产a免费观看不卡 | 免费a级毛片无码a∨性按摩| 亚洲一区二区三区国产精品无码| 在线观看片免费人成视频无码| 亚洲精品视频在线看| 亚洲av无码专区首页| 在线免费观看一级片| 亚洲精品无码成人片久久不卡 | 成人片黄网站色大片免费| 亚洲国产高清视频在线观看| 在线视频精品免费| 亚洲精品天堂成人片AV在线播放| 国产美女在线精品免费观看| 亚洲国产欧美国产综合一区| 深夜国产福利99亚洲视频| a级毛片免费网站| 久久亚洲AV午夜福利精品一区| 无码国产精品一区二区免费16| 亚洲视频免费观看| 男人的好免费观看在线视频| 无码亚洲成a人在线观看| 亚洲成A人片在线观看无码3D| 美女被免费网站91色| 亚洲欧洲日韩不卡| 一二三四在线观看免费高清中文在线观看| 成人区精品一区二区不卡亚洲| 日本高清免费网站| 香蕉视频在线免费看| 亚洲欧洲日本天天堂在线观看| 日韩一区二区在线免费观看| 二级毛片免费观看全程| 国产AV无码专区亚洲AV男同| 日本人的色道免费网站| 亚洲成AV人片高潮喷水| 亚洲精品美女久久久久99| 在免费jizzjizz在线播| 久久亚洲欧美国产精品| 亚洲精品成人网站在线观看| 午夜福利不卡片在线播放免费| 一道本在线免费视频|