這個問題看似簡單
<html : link action="test" onclick="javascript : return confirm( ' <%= i %>' )" />
你以為這樣就解決嗎??
上面的結果就會出現一個 javascript confirm box 上面顯示 <%= i %>的訊息
剛開始我以為這樣是一定可以成功,結果出來卻不是我要的XD
因為透過 struts tag 裡面的 scriptlets(<%=%>) 是不會被JSP 先解析,所以就想說那就把呼叫confirm 所給的 arguments 的單括號拿掉!!
<html : link action="test" onclick="javascript : return confirm( <%= i %>)" />
結果就是連 confirm box都彈不出來, 透過 firefox 的 javascript console 來觀察錯誤在哪,結果就是跟你說 < 符號不能理解XD
這問題困擾了很多天,有一天透過 google 大神終於找到解答了!!!
這解答果然有撇步~~~
只要將上面的 TAG 改為
<html : link action="test" onclick= ' <%= "return confirm( ' " +i+ " ' )" %>' />
也就是將呼叫 javascript 的 code 在 scriptlets 中當作字串來處理
然後有牽涉到 JSP scope 中變數的部分就利用 string 相加的方式完成整句在client browser 先由 server 解析
與大家分享之~~
沒有留言:
張貼留言