簡體   English   中英

如何使表達語言跨多個jsp頁面跳轉?

[英]how to make expression language jump across multiple jsp pages?

我可以使用某種表達語言,但不能全部使用。 例如,這是我的路線。 啟動home.jsp(單擊鏈接可進入q4.jsp)。 選擇一個單選按鈕,然后單擊另一個鏈接。 帶您進入q1.jsp。 選擇一個單選按鈕,在文本框中輸入文本,然后單擊另一個鏈接,然后在results.jsp上完成操作。

我的問題:

這是result.jsp

Good day **Rich**, for question 1 you chose and for question 2 you chose **Integer**

Total score:

Rich沒有硬編碼,results.jsp實際上讀為“ Good day $ {param.elc}”。 這項工作。 整數不是硬編碼的,results.jsp實際上顯示為“並且對於問題2,您選擇了$ {param.radios1}”。 這項工作

不起作用的是,如果jsp頁面不在變量所在的位置之前。 q1.jsp直接通向results.jsp,因此直接進入工作變量。 如上所示,即使jsp讀取了您選擇的$ {param.radios4}的問題,選擇后也沒有變量。

為什么jsps只能從頁面之前讀取? 我希望q4.jsp將變量存儲到最終頁面。

您必須使用會話在用戶和Web應用之間進行對話。 由於默認情況下,一旦您對第一個請求消失了,您的參數就會存儲為請求屬性。

具有會話范圍的對象可以從處理請求的頁面訪問,這些請求與創建它們的會話處於同一會話中。 會話是用戶花費在使用應用程序上的時間,該時間段是在關閉瀏覽器,訪問另一個網站或應用程序設計人員需要時(例如,注銷后)結束。 因此,例如,當用戶登錄時,其用戶名可以存儲在會話中並顯示在他們訪問的每個頁面上。 這些數據一直持續到他們離開網站或注銷為止。

例如:

    <jsp:useBean id="employee" class="EmployeeBean" scope="session" /> 

或者您可以使用HttpSession接口的引用將您的請求參數保存在會話屬性中。

 public class MyServlet extends HttpServlet {  

    public void doGet(HttpServletRequest request, HttpServletResponse response){  
    try{  


    String n=request.getParameter("userName");  

    HttpSession session=request.getSession();  
    session.setAttribute("uname",n);  

    //code

   }catch(Exception e){System.out.println(e);}  
  }  

 }  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM