JSP中:
类似如<jsp:param name="name" value="<%=request.getParameter("name")%>"/>中的value="",会导致以下报错信息:
Attribute value request.getParameter("name") is quoted with " which must be escaped when used within the value属性值的request.getParameter("name")的被引用为"值的范围内使用时,必须进行转义-(来自谷歌翻译)
1.错误常发生的位置
value="<%=request.getParameter("name")%>"
2.错误产生的原因
因为tomcat版本升级后(6.0以后),对双引号的处理机制引起的,如果出现双引号包含双引号的情况,就可能会出现这个错误。
3.解决办法
我第一反应,觉得应该是value中""不能再嵌套"",尝试做如下修改:
<jsp:param name="name" value="<%=request.getParameter('name')%>"/> - 可以
然后这样也可以,就是利用"\"转义字符,如:
<jsp:param name="name" value="<%=request.getParameter(\"name\")%>"/> - 可以<span style="display: none; width: 0px; height: 0px;" id="transmark"></span>
<jsp:param name="name" value="<%=request.getParameter("name")%>"/> - 可以
HTML中:
<html>
<body>
onclick="alert("OK")"<input type="button" value="失败" onclick="alert("OK")" /><br />
onclick='alert('OK')'<input type="button" value="失败" onclick='alert('OK')' /><br />
onclick="alert('OK')"<input type="button" value="成功" onclick="alert('OK')" /><br />
onclick='alert("OK")'<input type="button" value="成功" onclick='alert("OK")' /><br />
onclick="alert(\"OK\")"<input type="button" value="失败" onclick="alert(\"OK\")" /><br />
onclick="alert("OK")"<input type="button" value="成功" onclick="alert("OK")" /><br />
onclick="alert("OK")"<input type="button" value="失败" onclick="alert("OK")" /><br />
onclick=alert("OK")<input type="button" value="成功" onclick=alert("OK") /><br />
</body>
</html>
JS中:

本文介绍了在JSP中遇到的双引号嵌套导致的错误,该错误在Tomcat 6.0及以上版本升级后出现。错误主要发生在jsp:param的value属性中,当双引号内再包含双引号时触发。解决方法包括使用转义字符"或者调整字符串的引用方式。同样的问题也可能出现在HTML和JS中。
285

被折叠的 条评论
为什么被折叠?



