2008-09-25 39 views
1

我需要驗證這個簡單的選擇列表:如何輕鬆驗證JSP選項選擇列表?

<select name="<%= key %>"> 
    <option value="ETC" SELECTED>Select an option...</option> 
    <option value="ONE">Lorem ipsum</option> 
    <option value="TWO">dolor sit amet</option> 
</select> 

所以用戶決不會與提交表單,藉口重複,「選擇一個選項...」選項中選擇。原則上我被允許使用JavaScript,但學習如何在JSP中解決它也很有趣。

回答

2

因爲您無法控制客戶端,所以永遠無法真正滿足'永不提交給定值'的條件。用戶總是可以操縱HTML來提交他們想要的任何內容。

這是一個很好的方法,就是使用JavaScript進行客戶端驗證,併爲用戶提供快速反饋並捕獲99%以上的情況,然後對提交的參數進行服務器端驗證以捕獲少數沒有啓用JS或者操作HTML來提交不期望的值。

請記住,客戶端驗證是可選的,對於那些「常見錯誤」輸入驗證很有用,但服務器端驗證對於所有輸入都是強制性的,無論是否進行了任何客戶端檢查給定的輸入。

1

現在,您通常不會在JSP中進行驗證,因爲它們僅可視化之前處理的任何內容。所以你在「jsps」中唯一的驗證通常是Javascript。其餘的(真正的驗證)我第二皮特回答:你必須在那裏使用任何技術在服務器上做。當它再次顯示在JSP中時,驗證已經很長時間了。正如我所說的「如今」:當JSP是一個閃亮的新概念時,更多的事情是在JSP的邊界內完成的,有時甚至將表單發佈到JSP。 當時如何驗證更爲不規範。

+0

奧拉夫,非常感謝評論! – 2008-09-25 20:53:35

1

JSP是MVC模式中的「視圖」,因此只能用於向用戶顯示數據。任何應用程序邏輯,包括驗證邏輯,都應該在服務器端完成。 如果這個JSP旨在成爲一個大型應用程序的一部分,我會建議使用Spring MVC來設置你的應用程序,並編寫一個驗證器來驗證輸入。 但是,即使我們沒有在這裏談論一些大型應用程序,驗證仍應該在服務器端完成,就像我以前的其他人已經注意到的一樣。

+0

非常感謝您的評論,我一定希望遵循您的建議並學習Spring,但事實是,我不是從頭開始創建應用程序,而是在處理現有的專有生產應用程序。 – 2008-09-28 15:48:34