2011-06-06 105 views
0

我打電話使用參數在jsp頁面如何傳遞參數

window.location.href = "/csm/csminfo.jsp?CFG_ID="+cfgid+"&path="+path; 

一個servlet在對身體負荷的其他csminfo我正在調用一個函數來獲取這些PARAMS

<body onload="getConfigDetails(<%= request.getParameter("CFG_ID") %>,<%= request.getParameter("path") %>)"> 

JS

function getConfigDetails(cfgid,path) 
{ 
alert(cfgid+","+path); 
} 

但沒有警報彈出,這裏有什麼問題?

我使用的是Firefox,使用錯誤控制檯我得到這個錯誤 enter image description here

+1

您應經常檢查JavaScript錯誤。 – Pointy 2011-06-06 15:13:29

+0

@Pointy:謝謝,我得到一個錯誤,雖然無法得到它,所以我張貼在我的問題..可能需要一些逃脫 – abi1964 2011-06-06 15:45:35

回答

3

你沒有正確引用字符串:

<body onload="getConfigDetails('<%= request.getParameter("CFG_ID") %>','<%= request.getParameter("path") %>')"> 

其他一些問題:

  1. 建設當原始頁面上的URL,您應該確保使用JavaScript內置的「encodeURIComponent()」函數正確編碼參數值。
  2. JSP scriptlet是一種古老而醜陋的做事方式,在新代碼中確實沒有位置。你應該尋找資源,瞭解JSTL:

    <body onload="getConfigDetails('${param.CFG_ID}','${param.path}')"> 
    
  3. 無論您使用JSTL或小腳本,你值從HTTP參數拉,並注入到你的頁面源代碼應通過HTML脫離機制運行。在JSTL,那會是這樣的:

    <body onload="getConfigDetails('${fn:escapeXml(param.CFG_ID)}','${fn:escapeXml(param.path)}')"> 
    
+0

謝謝你的幫助 – abi1964 2011-06-07 05:01:08