2012-08-09 59 views
0

我是JSP的初學者,需要一些幫助。我從我的第一個JSP頁面中的這一段代碼開始了將JSP轉換爲JSTL

<% 
    LoginService user = new LoginService(); 
%> 

Hello <%=user.getUserID() %>! 

工作得很好。我正確地導入了LoginService類,這段代碼起作用了!但現在我正在學習JSTL並試圖將上述內容轉換爲JSTL標籤。所以我右腳下車,但需要一些幫助完成。到目前爲止,我有

<jsp:useBean id="user" class="org.test.LoginService"></jsp:useBean> 

但我在轉換最後一個Hello行到JSTL標記時遇到麻煩!我無法弄清楚如何在JSP標記中引用方法getUserID()。我自己走了這麼遠,但需要一些幫助完成!任何迴應將不勝感激!

+1

這種方法現在已經過時了。使用任何'jsp'標籤都沒有地方。在你的情況下,使用'jsp:useBean'標籤創建另一個類LoginService實例。使用更靈活和功能性標籤'c:set'和'c:out'。他們沿着[EL](http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html)可以完全替代使用scriptlet和'jsp'標記庫。 – kapand 2012-08-10 00:23:16

+0

你可以閱讀爲什麼這樣的方法是最好的[這裏](http://stackoverflow.com/questions/9680248/getting-a-null-value-for-where-i-expect-a-string-set-by -the-mutator/9680335#9680335)和[here](http://stackoverflow.com/questions/5088625/how-to-get-an-object-of-java-class-from-jsp/5088714#5088714) 。順便說一句,使用'c:out'標籤是有道理的。 [Here](http://stackoverflow.com/questions/291031/jsp-cout-tag)的詳細解釋。 – kapand 2012-08-10 00:29:26

回答

2

您可以使用:

<jsp:getProperty name="user" property="userID" /> 

,但最好使用:

${user.userID} 
+0

謝謝你的幫助! – gmustudent 2012-08-09 21:54:01

1

這將是:

Hello ${user.userID}! 
3

您可以使用表達式語言:

<c:out value="Hello ${user.userId}!" /> 
+0

我對此非常陌生(今天學習jsp),並且正在努力掌握所有向我投擲的東西。你能幫我理解我將如何以正確的方式創建用戶對象?那是通過使用c:set?謝謝 – gmustudent 2012-08-10 00:56:42

+0

當我試圖輸入你的代碼時,它不適合我。它有一個警告說未知標籤(c:out)。當我試圖用警告運行它時,我引發了一個404代碼,並在該代碼行中拋出了Exception。 – gmustudent 2012-08-10 01:02:22

+0

在您的servlet中創建一個用戶對象,並將其設置爲一個http請求,屬性爲request.setAttribute(「user」,user);'。你也可以使用會話範圍。這取決於問題和目標的背景。你需要正確包含'jstl'庫。你可以閱讀[這裏](http://stackoverflow.com/questions/8400301/cout-unknown-tag/8400733#8400733)關於解決這個問題。 – kapand 2012-08-10 01:34:24