如何在 JSP 中按原样打印字符串? (字符串本身看起来像 JSP 代码)

How can I print string as-is in JSP? (The string itself looks like JSP code)

我只想按 JSP 中的原样打印以下字符串(这是电子邮件模板的标签,稍后将被替换)

<%= escapeUrl(message.delivery.mailParameters.subject) %>

我试过了

<% out.println("<%= escapeUrl(message.delivery.mailParameters.subject) %>"); %>

但这给了我一个 "String literal is not properly closed by a double-quote" 错误,这很奇怪,因为代码中没有打开的双引号。我需要做任何事情吗(比如转义一个角色?)

您需要的构造称为 "static literal" —— 您希望绕过 jsp 解析并直接输出 jsp 标记。语法如下:

<\%= escapeUrl(message.delivery.mailParameters.subject) %\>

即,在尖括号和两端的百分比之间添加一个反斜杠!

如此处 "comments" 中所述:http://www.tutorialspoint.com/jsp/jsp_syntax.htm

以下应该有效,已在 tomcat 服务器中测试。虽然它会在 eclipse IDE 中显示错误,但会正确编译并呈现输出

<%="<%=escapeUrl(message.delivery.mailParameters.subject)%\>"%>