我正在使用params调用一个servlet
window.location.href = "/csm/csminfo.jsp?CFG_ID="+cfgid+"&path="+path;
在身体负载的其他csminfo中,我调用一个函数来检索这些参数
<body onload="getConfigDetails(<%= request.getParameter("CFG_ID") %>,<%= request.getParameter("path") %>)">
JS
function getConfigDetails(cfgid,path)
{
alert(cfgid+","+path);
}
但没有警报弹出,这里有什么问题?
我正在使用firefox,使用错误控制台我收到此错误
答案 0 :(得分:3)
你没有正确引用字符串:
<body onload="getConfigDetails('<%= request.getParameter("CFG_ID") %>','<%= request.getParameter("path") %>')">
其他一些问题:
JSP scriptlet是一种陈旧,丑陋的做事方式,在新代码中确实没有地位。您应该寻找资源来了解JSTL:
<body onload="getConfigDetails('${param.CFG_ID}','${param.path}')">
无论您使用JSTL还是scriptlet,您从HTTP参数中提取的值以及注入页面源的值都应该通过HTML转义机制运行。在JSTL中,看起来像这样:
<body onload="getConfigDetails('${fn:escapeXml(param.CFG_ID)}','${fn:escapeXml(param.path)}')">