是否在JSP页面的HTML注释中评估了JSP表达式?

时间:2011-02-20 21:42:34

标签: html jsp comments expression

是否在JSP页面的HTML注释中评估了JSP表达式?

那么在这种情况下服务器输出会是什么?

<!--
Jeremy <%="Flowers"%>
--> 

表达式是否会被解析,或者它将作为HTML注释中的表达式保留

A)

<!--

Jeremy <%="Flowers"%>

-->

或b)

<!--

Jeremy Flowers

-->

3 个答案:

答案 0 :(得分:4)

是的,表达式将被解决。 JSP页面甚至不知道它是以HTML格式编写的,因此它不会解释任何特定于HTML的内容。

您也可以使用JSP或JSON或任何您喜欢的方式编写纯文本。

答案 1 :(得分:1)

这些是html评论,而不是jsp评论。因此,仍在评估内部的所有jsp代码。

还有jsp特定的评论内容的方式:<%-– ... -–%>。内部内容不会被服务器评估,也不会传递给浏览器。所以,它也充当了html评论。

答案 2 :(得分:0)

当页面呈现给浏览器时,您甚至可以使用 HTML 注释来部分隐藏来自 jsp 表达式的计算结果。

例如

`${empty requestScope.errors? "" : "<p id='errors'>Error(s)!
    <ul>"}
    <!--${requestScope.errors.stream().map(x -> "-->
               <li>"x"</li>
           <!--").toList()}-->
    ${empty requestScope.errors? "" : "</ul></p>"}`

来自 requestScope.errors.stream().map(x->) 的局部变量 x 仍然被求值并传递给 <li>"+=x+="</li>

输出:

` 错误!

  • 产品必须有名称
  • 产品必须有价格

`

如果表达式不在 HTML 注释标签中,由于 .toList()

会出现“[]”符号

不带 HTML 标签的输出:

`错误!

    [
  • 产品必须有名称
  • 产品必须有价格
  • ]

`