我的描述包含一个apstrophe(')。如何逃脱它。
<a href='javascript:select("<%= pageBean.replace(list.getColumn(0), "'", "'") %>",
"<%= pageBean.replace(list.getColumn(1), "'", "'") %>");' title="<%=selRpt%>">
<span class='img-view'></span></a>
"<%= pageBean.replace(list.getColumn(1), "'", "'") %>"
是我的JSP Scriptlet中的描述部分,其中包含apstrophe(')
我的HTML视图
<a href='javascript:select("JWCCA5",
"Worker's Compensation Form - California Form 5020(New)");'
title="Select Report"><span class='img-view'></span></a>
答案 0 :(得分:6)
使用 \'
在HTML标记内,您需要将字符串转换为HTML实体,因此引号变为'
在纯JavaScript中,您还可以使用\'
答案 1 :(得分:6)
对于保留的HTML字符,您应该使用HTML entities。然后将撇号重新表示为'
:
<a href='javascript:select(
"<%= pageBean.replace(list.getColumn(0), "'", "'") %>",
"<%= pageBean.replace(list.getColumn(1), "'", "'") %>");' title="<%=selRpt%>">
<span class='img-view'></span></a>
答案 2 :(得分:2)
通常\'应该有用,但似乎有时你需要使用''(双撇号)。
试试这个:
<%= pageBean.replace(list.getColumn(0), "'", "\'" %>
或:
<%= pageBean.replace(list.getColumn(0), "'", "''"
其中一个应该有用(根据我的经验)。
对于HTML标记内的属性,我会使用“(引号)而不是”(撇号)。
答案 3 :(得分:1)
从HTML调用函数,并将JavaScript放入该函数中。它会解决你的问题,但我认为这样做稍微好一些。
答案 4 :(得分:1)
也许您可以使用unicode字符代码? (\ u0027)
答案 5 :(得分:1)
在渲染之前,您必须将'
替换为#39;
你可以在中做
- 来自何处的属性文件
- 在ASP中的代码
"<%= pageBean.replace(list.getColumn(1), "'", "'") %>"
也许
"<%= pageBean.replace(list.getColumn(1), "'", "'") %>"
应该做的工作。
答案 6 :(得分:1)
普通的JSP开发人员会abandon过时的 scriptlet ,而是使用JSTL c:out
或fn:escapeXml
。两者都predefined XML entities转义为'
到'
,依此类推。
以下是fn:escapeXml
的示例:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
...
<a href="javascript:select('${fn:escapeXml(list.columns[0])}',
'${fn:escapeXml(list.columns[1])}');" title="${title}">
您可能只需要将模型更改为更合适的Javabean。