我需要改变"
,以\"
与JSTL替换功能使用的字符串输入标签,如:
<input type="hidden" name="text" size="40" value="${text}">
如果${text}
具有"
,则HTML将被破坏。
所以我尝试了
<input type="hidden" name="text" size="40" value="${fn:replace(text, "\"", "\\\""}">
和
<input type="hidden" name="text" size="40" value="${fn:replace(text, '"', '\"'}">
但是没有用。该页面出现如下错误
org.apache.el.parser.ParseException:在第1行第32列遇到““}”“}”“。期望以下其中之一:”。…“)”
…“ [” …“,” …“>” …“ gt” …“ <” …“ lt” …“> =”。 ..“ ge” …“ <=”
…“ le” …“ ==” …“ eq” …“!=” …“ ne” …“ &&” …“和” …“ ||” …“或”
…“ *” …“ +” …“-” …“ /” …“ div” …“%” …“ mod” .. 。
我怎样才能做到这一点?
更新资料
我错过了替换功能的详细介绍。正确的人就是这个亲密的人:
<input type="hidden" name="text" size="40" value="${fn:replace(text, '"', '\"')}">
更新2
我发现在发布文本时,使用\
不是一个好主意,因为这个原因为什么不能在HTML输入标签中使用\“?代码应该像这样:
<input type="hidden" name="text" size="40" value="${fn:replace(text, '"', '"')}">
它不起作用,因为\
是Java字符串中的转义字符。要从字面上表示它,您需要\
再次将其转义。另外,"
是EL中的特殊字符,您还需要对其进行转义以从字面上表示它。因此,正确的语法应该是:
<input type="hidden" name="text" size="40" value="${fn:replace(text, '\"', '\\\"'}">
但是,您 实际上 应该使用它fn:escapeXml()
来防止XSS。它不仅转义了引号,而且还转义了其他字符。
<input type="hidden" name="text" size="40" value="${fn:escapeXml(text)}">
问题内容: 如何在MS SQL“包含”函数中转义双引号字符? 通常contains()期望双引号将一个精确的短语括起来以匹配,但是我想搜索一个实际的双引号字符。我尝试用\,`甚至另一个双引号将其转义,但是没有一个起作用。 PS我意识到也可以使用LIKE语句来完成类似这样的简单示例,但是我需要使用全文本搜索功能。出于示例目的,我在此处提供的查询已从我的实际查询中简化了。 问题答案: 从 文档 : 标
问题内容: 我正在尝试显示双引号,但它显示的是反斜杠之一: 在html中呈现时,显示为。正确的方法是什么? 问题答案: 试试这个: (在引号前只需一个反斜杠())。
我想显示双引号,但它显示了一个反斜杠: 在html中呈现时,它显示为。正确的方法是什么?
这是Rakudo Star版本2019.03.1,基于MoarVM版本2019.03构建,实现Perl 6。d Windows 10 示例: 1)错误: mysqldump:[警告]在命令行界面上使用密码可能不安全。mysqldump:找不到表:“19-45-18\asppmr.sql”过程。新建(英寸= 2) 错误: Синтаксическая ошибка в имени файла, им
问题内容: 我想对带有双引号的关键字进行grep操作。举一个简单的例子: 那不匹配。我该如何解决? 问题答案: 问题是您没有正确转义输入字符串,请尝试: 或者,您可以在单引号内使用不转义的双引号: 尽管第二种方法阻止您将命令嵌套在另一组单引号(例如)中,但是您会更清楚地了解到这是一个优先事项。
问题内容: 我正在尝试使用在锚的title属性中包含双引号的字符串。到目前为止,我尝试了这些: 和 请注意, 不能 使用单引号。 问题答案: 这个变体- 是正确的,并且可以正常工作-您在呈现的页面中看到正常的引号。