如何在jsp页面中传递参数

时间:2011-06-06 15:10:11

标签: javascript jsp

我正在使用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,使用错误控制台我收到此错误 enter image description here

1 个答案:

答案 0 :(得分: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还是scriptlet,您从HTTP参数中提取的值以及注入页面源的值都应该通过HTML转义机制运行。在JSTL中,看起来像这样:

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