我正在學習Web開發的同時,在一個小型的Servlets & JSP應用程序中工作。使用Servlet和JSP驗證號碼
我對jsp和servlet之間的驗證和傳遞值有個疑問。
我有一個「啤酒」類,有一個「評級」屬性(類型爲double)。
加載「edit.jsp」的servlet將創建一個Beer對象並從DB加載當前值。
BeerDAO beerdao = new BeerDAO();
Beer beer = beerdao.getBeer(id);
request.setAttribute("beer", beer);
在JSP,對象被顯示在下面的方式:
...
<td class="left">Beer Name:</td>
<td><input type="text" name="name" value="${beer.name}"/></td>
...
<td class="left">Rating:</td>
<td><input type="text" name="rating" value="${beer.rating}"/></td>
...
現在,當我提交表單到「更新」的servlet,每個屬性被驗證。在「評級」屬性的情況下,我將其轉換爲雙倍。
我應該在驗證中發現一個錯誤(即:字母,而不是數字的評分值),我想返回到用戶鍵入的值和錯誤消息的表單。事情是,我需要在表單中顯示請求中的啤酒對象,但我無法將「評級」值傳遞給它,因爲它不是正確的類型。所以現在我將用戶帶回一個空白評級的表單。
我猜我錯了。那麼,驗證數字並回到編輯表單的正確方法是什麼?
謝謝!你的解決方案非常漂亮。我不知道參數對象。 – robertrv 2011-03-31 22:59:24
不客氣。有關EL中的隱式對象的更多信息,請參閱此答案http://stackoverflow.com/questions/2113286/what-are-implicit-objects-what-does-it-mean – BalusC 2011-03-31 23:36:36