反饋已提交

網絡繁忙

報表裏獲取session中的值

1. 概述

Session 儲存了 key-value 屬性對,希望在報表中拿到 Session 中的 key 的值。本文總結了主要的應用場景以及實現思路。

2. 直接在報表範本中獲取 Session 中的值

報表應用整合到使用者系統中,共用同一個 Session,此時可以直接在報表中獲取 Session 的值。

如 Session 中儲存了 key a,其值為 123,那麼在我們報表中使用 =$a 就能直接獲取到 Session 中 a 的值。

3. 網頁中先獲取 Session 中的值再傳給 iframe 中的報表

3.1 實現思路

以 JSP 為例,可以透過 session.getAttribute(String key) 獲取 Session 中 key 的值,嫁接在 JSP 中嵌入報表 iframe 的 src 後。

3.2 範例

在使用者系統中透過 session.setAttribute(String key,Object value); 在 Session 中儲存了資訊如 fine_username=Anna,

在 JSP 中透過session.getAttribute("fine_username"),獲得 fine_username,再傳給報表,代碼範例如下:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html> <body> <iframe width=100% height=100% src='/webroot/decision/view/report?viewlet=getkey.cpt> </iframe> </body> </html>

報表範本中就可以獲取該 fine_username 的值,如下圖:

效果如下:

注:JSP 檔案只能由伺服器來決議。

4. 在JavaScript中獲取session中的值

4.1 實現思路

Session 是後臺伺服器端的變數,而 JS 是前端腳本,在 JS 中是沒有現成的方法獲取 Session 的值的,需要透過伺服器語言來獲取。

比如java就可以用來獲取 Session 的值,再指派給 JS 變數。

以 JSP 為例,透過:

var id = '<%=session.getAttribute("id")%>';

注:Java 代碼用單引號引起來,Java 中字串變數用雙引號

4.2 範例

我們可以做一個 JSP 簡單的頁面顯示 Session 的值:先將 Session 值置為 Imsession,然後顯示。

呼叫 JSP 代碼來運作:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>    
 <head> 
 <title>自訂瀏覽頁面</title>     
 <script type="text/javascript">       
 function x(){
<%session.setAttribute("id","Imsession");%>
 var id = '<%=session.getAttribute("id")%>';     
 alert("session是" id);
} </script>     
</head>    
 <body>     
 <input type ="button" onClick="javascript:x();" value="session">         
 </body>     
 </html>

5. 在JavaScript中獲取sessionID

普通報表和決策報表獲取 SessionID 的方法:

FR.SessionMgr.getSessionID();


附件列表


主題: 部署集成
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙