2016-04-04 140 views
-3

我alreayd看到這個很多問題,但它提出的解決方案並沒有爲我工作:的java將數據傳遞給jsp中

在我的servlet我這樣做:

protected void doGet(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
     request.setAttribute("title", "Level0and1ForUser"); 

     request.getRequestDispatcher("./testPages/resultSetFormatter.jsp") 
       .forward(request, response); 
    } 
} 

而在jsp頁面:

<title> 
<%= request.getParameter("title") %> 
</title> 

結果爲空當你看到:

enter image description here

+0

從我的角度來看沒有downvote候選人 –

+0

你正在寫的值轉換成*屬性*,那麼你想讀一個*參數* 。這不是一回事。 – f1sh

回答

2

您可以使用:

${requestScope.title} 

注:

切勿使用JSP頁面中的Java代碼,其棄用,強烈建議不要

的小腳本的使用總是不鼓勵。相反,應該使用標籤庫,如JSTL或表達式語言(EL)。

這個問題總是會出現,爲什麼我們不應該在JSP中使用scriptlet時,也可以使用scriptlet執行相同的任務。

這就是爲什麼要避免在JSP中使用scriplets:

  • JSP小腳本降低了代碼的可維護性和可讀性,從而使其難以閱讀和做進一步的修改。
  • JSP Scriptlets不能被重新使用。
  • JSP Scriptlets不是單元可測試的。
  • JSP Scriplets將演示文稿與極易出錯的業務邏輯合併在一起。
  • 最後但並非最不重要的一點,如果JSP Scriptlets引發異常,它將打破整個頁面,並且不會在處理中進一步移動。
+0

和什麼是可能的(更好)替代我的代碼請嗎? –

+0

我的答案的第二行...只需將它放在''標籤 – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">之間,標題就變成了'{$ requestScope。標題}'不是標題的實際值,這是代碼'<title> {$ requestScope.title} ' –

1

如果你把requestattribute的價值,你必須得到它以同樣的方式:

<title> 
<%= (String)request.getAttribute("title") %> 
</title> 

但更美麗的是Jordi的答案。