是否有可能擁有一個包含對象的servlet(在這種情況下是ArrayList),然後執行相當於顯示jsp頁面並將該對象傳遞給jsp頁。在這種情況下,ArrayList包含我想要遍歷並在JSP頁面上顯示結果的數據庫結果。如何將信息從servlet傳遞到JSP頁面
我沒有使用任何MVC框架,是否有可能使用基本的Servlet/JSP架構來實現這一點。
是否有可能擁有一個包含對象的servlet(在這種情況下是ArrayList),然後執行相當於顯示jsp頁面並將該對象傳遞給jsp頁。在這種情況下,ArrayList包含我想要遍歷並在JSP頁面上顯示結果的數據庫結果。如何將信息從servlet傳遞到JSP頁面
我沒有使用任何MVC框架,是否有可能使用基本的Servlet/JSP架構來實現這一點。
是的。
request.setAttribute("result", yourArrayList);
然後轉發給JSP:
<c:forEach items="${result}" var="item">
...
</c:forEach>
如果你不」:使用JSTL,在jsp
getServletContext().getRequestDispatcher("your.jsp")
.forward(request, response);
不想使用JSTL(但我建議使用它),那麼你可以在JSP中也使用request.getAttribute("result")
獲取值。
或者,但不推薦,如果您想要redirect()
而不是forward()
,則可以使用request.getSession().setAttribute(..)
。
您可以通過將對象嵌入到請求中來將對象傳遞給jsp。
request.setAttribute("object", object);
和JSP中:
request.getAttribute("object");
我應該怎樣谷歌獲得更多信息,我似乎沒有得到任何東西。 – Ankur 2010-02-14 14:48:21
你可以把它使用了request.setAttribute( 「MyObj中」,MyObj中);見javadoc
如果您試圖製作某種「組件」,那麼最好將JSP頁面轉換爲自定義標籤。這裏有一篇很好的文章:http://onjava.com/pub/a/onjava/2004/05/12/jsp2part4.html
謝謝,我現在確實是這麼做的。它很整潔。 – Ankur 2010-10-31 08:40:48
請注意,不建議使用redirect()方法的原因是,因爲您告訴瀏覽器在「請求」範圍不同的情況下轉到新的請求導致新請求的URL,因此結果無法存儲在「請求」 -scope(request.setAttribute ...)但必須存儲在可用於新請求的作用域中。在標準JSP中,只有會話範圍可用,而對象通常不會被永久居住。我相信MyFaces Orchestra有一個有趣的選擇 - http://myfaces.apache.org/orchestra/myfaces-orchestra-core/installation.html – 2010-02-14 15:21:49
是的,但這太多了,因爲他不想使用mvc框架 – Bozho 2010-02-14 15:35:07