2013-08-18 43 views
0

所有,我有一個在servlet中設置的屬性變量。並想在jsp中獲得它。 但我有一些關於它的問題。 假設你有代碼。獲取從servlet傳遞的屬性變量

在servlet中。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     request.setAttribute("BeerSelected", "BlackBeer"); 
     RequestDispatcher disp=request.getRequestDispatcher("SelectResult.jsp"); 
     disp.forward(request,response); 
    } 

在JSP

此代碼的工作

<%String name = (String)request.getAttribute("BeerSelected");%> 
<%= name%> 

但是,爲什麼下面的代碼不能正常工作? jsp不呈現值。

<%request.getAttribute("BeerSelected");%> 

下面的代碼也沒有。我不知道爲什麼toString()不起作用。 thannks。

+1

請閱讀最新的JSP教程。 – BalusC

回答

4

因爲送東西到響應的作家,你必須使用<%= ... %>,或者明確地寫作者:

<% out.println(request.getAttribute("BeerSelected")); %> 

您的代碼等同於Java代碼:

request.getAttribute("BeerSelected"); 

所以這會調用該方法,但不會對返回的內容做任何事情。

也就是說,你應該完全忘記腳本,不應該使用多年和幾年。使用JSP ELJSTL顯示(正確逃生)你的價值:

<c:out value="${BeerSelected}" /> 

而且,屬性,按照慣例,像拼寫Java變量:beerSelected而不是BeerSelected

+0

:p原諒我我是一個從ASP.Net web應用程序到Servlet的新手。謝謝你的不錯答案。 +1 –