JSP和HTML和JS - 双引号嵌套问题解决方案(不断完善中)

来源:互联网 发布:mac硬盘安装助手0.3 编辑:程序博客网 时间:2024/05/21 11:09

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中:




0 0
原创粉丝点击