簡體   English   中英

無法獲取Java Servlet的請求中設置的JSP中的屬性?

[英]Not getting the attribute in jsp which is set in request in java servlet?

我正在使用gwt並且gwt包含在我的jsp中,如下所示

單擊菜單項后,它將帶我進入myJsp.jsp,其中包括gwt模塊,並且我正在顯示帶有上載按鈕的表單。 單擊上傳后,它正在加載文件(並獲取blobKey)並返回到相同的jsp(myJsp.jsp),但在此之前,在分派給該jsp(第二次)之前,我在請求中設置了一個屬性。

我試圖通過使用$ {ImportId}在jsp中獲取該屬性,但是我得到的是空值。

下面是我的jsp。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<html>
  <head>
    <script type="text/javascript" language="javascript" src="/ActivityLog/ActivityLog.nocache.js">
    </script>
  </head>
  <body>
    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' class="iframe"></iframe>
    <div class="wrapper"> 
      <input type="hidden" name="memcacheHeaderId" value="${importId}" />
      <div id="activityLogModule">
      </div>
    </div>
    </div>
</body>
</html>
  1. 當執行gwt模塊時,$ {importId}為null。
  2. 第二次調度到該jsp之前,我正在設置request.setAttribute("importId", importId); 但是在jsp中我沒有得到這個值

可能是什么原因,是否存在范圍問題?

唯一的原因是您正在請求中設置值,當請求完成時,服務器將放棄您的請求。

設置時

request.setAttribute(“ importId”,importId);

比您必須重定向到JSP,后者將向服務器創建一個新的JSP請求。 含義服務器將創建一個新的請求對象,並且不會記住設置了屬性的舊對象。

我對gwt不太了解,但是在JSP-Servlet中,有2種機制1)Redirect和2)Forward。 我們使用Forward機制將帶有Same請求對象的JSP轉到JSP,因此設置到Object中的屬性在JSP上也可用,因為它是在Request中傳遞的請求對象的副本。

因此,請檢查您可以在GWT中執行的操作。

暫無
暫無

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

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