[問題] EL的參數型別問題

看板java作者 (no anonymous)時間7年前 (2017/03/11 22:33), 7年前編輯推噓1(1012)
留言13則, 5人參與, 最新討論串1/1
我在我的某個Spring mvc controller打上這一行: Model m = new Model(); m.addAttribute("status", "01"); 然後在要返回的jsp檔打上這段code: <script> var status=${status}; </script> 然後我發現 javascript的status 接收到的值不是'01' 變成'1'了 如下圖: https://dl.dropboxusercontent.com/u/63402326/%E6%9C%AA%E5%91%BD%E5%90%8D3.png
從圖中可以看到 ${status}似乎被解析成01而非'01' 可能是因為這樣 javascript將01當成1 所以圖上的status才會變成'1' 那請問可以怎麼修改 才能讓status從'1'變回'01'呢 我原本想說就用if else 只要status=='1' 就對status assgin'01' 但是總覺得應該有更簡便的作法 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.177.132 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1489242830.A.0CD.htmllueichun:轉錄至看板 Web_Design 03/11 22:38

03/11 22:49, , 1F
status 宣告成整數而不是字串的關係嗎?
03/11 22:49, 1F

03/11 23:02, , 2F
js和java不是串起來執行的,java端只是產生出文字而已
03/11 23:02, 2F

03/11 23:03, , 3F
jsp跑完後出來的js是 var status=01 ,01顯然是個數字
03/11 23:03, 3F

03/11 23:04, , 4F
要在js是字串要用 var status='${status}'
03/11 23:04, 4F

03/11 23:08, , 5F
${status}就只是把status的內容(toString)印出來而已
03/11 23:08, 5F

03/11 23:15, , 6F
java/jsp → 產生文字 → 瀏覽器解析文字 → 執行js
03/11 23:15, 6F

03/11 23:16, , 7F
不要把server端和client端的程式搞混
03/11 23:16, 7F

03/12 10:41, , 8F
照ssccg大的作法就可以了 謝謝
03/12 10:41, 8F
※ 編輯: lueichun (1.169.224.71), 03/12/2017 10:42:32

03/15 21:09, , 9F
個人認為可以param成json會比較好
03/15 21:09, 9F

03/22 21:46, , 10F
var a='${b}' 當b有特殊符號像是一個'的時候,js會哭哭
03/22 21:46, 10F

04/21 20:03, , 11F
有變數要代進js本來就要做js escape啊,escape完一樣放在
04/21 20:03, 11F

04/21 20:05, , 12F
''中間啊...是b要事先(或用jstl tag/EL function)escape
04/21 20:05, 12F

04/21 20:17, , 13F
如果是物件的話當然直接用json最方便,不過單純的string...
04/21 20:17, 13F
文章代碼(AID): #1On0hE3D (java)