JSP由淺入深(10-2)
發表時間:2024-06-05 來源:明輝站整理相關軟件相關文章人氣:
[摘要]一旦你定義了這個類,再編譯它,并且將它放置于網絡服務器的類路徑中。這個服務器同樣要定義一個特殊的目錄來放置bean類。如果你是使用Blazix你可以將它們放置到“classes”目錄中。如果你必須改變類路徑并且服務器正在運行,那么網絡服務器就必須停止并重新啟動。下面我們來修改一下“SaveName...
一旦你定義了這個類,再編譯它,并且將它放置于網絡服務器的類路徑中。這個服務器同樣要定義一個特殊的目錄來放置bean類。如果你是使用Blazix你可以將它們放置到“classes”目錄中。如果你必須改變類路徑并且服務器正在運行,那么網絡服務器就必須停止并重新啟動。
下面我們來修改一下“SaveName.jsp”以使用bean來收集數據:
<jsp:useBean id="user" class="UserData" scope="session"/>
<jsp:setProperty name="user" property="*"/>
<HTML>
<BODY>
<A HREF="NextPage.jsp">Continue</A>
</BODY>
</HTML>
這里所有我們需要作的事情是增加一個jsp:useBean標志以及jsp:setProperty標志。這個useBean標志是在session中查找“UserData”的實例。如果實例被找到了,它就將更新舊的實例;如果實例沒有被找到,它就將創建一個UserData新的實例(UserData的實例被稱為bean),然后將它放置于session中。而setProperty標志會自動收集輸入的數據,并匹配bean方法的名字,在將數據放置于bean中。
下面修改NextPage.jsp以從bean取出數據:
<jsp:useBean id="user" class="UserData" scope="session"/>
<HTML>
<BODY>
You entered<BR>
Name: <%= user.getUsername() %><BR>
Email: <%= user.getEmail() %><BR>
Age: <%= user.getAge() %><BR>
</BODY>
</HTML>
這里要注意useBean標簽被重復使用了。這個bean是作為類“UserData”的變量的。由用戶鍵入的數據都被收集在bean中。我們可以不需要“SaveName.jsp”,“GetName.html”的目標就是“NextPage.jsp”,并且只要我們增加一個jsp:setProperty 標志數據同樣有效。在下一個教程中,我們要使用SaveName.jsp作為一個錯誤處理并自動連接到NextPage.jsp上,換句話說,它叫用戶校正錯誤的數據。
本節教程的輔助練習為:A)編寫一個JSP/HTML使得用戶可以鍵入系統屬性的名字并將顯示有System.getProperty返回數值。B)回到我們剛才手動修改的boolean變量,這時我們不用boolean變量,而是將來自HIDDEN表單區域的變量設置為true或者false。