jsp頁面function裏面if判斷失效

       在文章開始,我必須得鄭重的說明一點:if絕對沒有失效!

       很多同學在調試的時候發現if條件無論對錯都會執行。對於這個現象,並沒有什麼問題。要了解這個現象得先從jsp輸出爲html網頁說起。

        jsp是在服務器的servlet裏運行,html,js在瀏覽器上執行。執行順序是jsp->js。大家知道頁面的加載順序是由上至下執行的,js屬於頁面的一部分,所以他的加載順序也是由在頁面中的位置而定。jsp轉換爲頁面的時候,它會一行行的輸出,那麼問題就出現了,他根本不會管if的條件對或者錯,都會加載下一行的,知道執行完整個jsp,這樣頁面就加載好了。

       前面說到了加載,請大家同執行區別開來。加載時一個自發的行爲,是jsp轉爲頁面的一個自動化過程。而執行是我們在頁面加載好之後進行了一系列操作,代碼所做出的響應。

       所以對於那些執行不會出現的錯誤,在加載時並不代表不會出錯。比如,空指針異常,在頁面加載過程中可能還沒對一個對象進行實例化,而是當我們執行後進行的實例化。等等,你認爲莫名其妙的錯誤。如果你將頁面加載的過程也看成是代碼真實執行的過程(就是真是執行的過程),就不會感到意外了。

       說了這些相信你知道怎麼解決相關的問題了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章