JSP 页中的标签
Tags in JSP Page
我试图了解现有的 Spring MVC 应用程序,在 JSP 页面中我找到了以下代码
<c:forEach items="${responseData}" var="data">
<li>
<c:choose>
<c:when test="${data.firstName}">
<span class="strike">
${f:h(data.lastName)}
</span>
</c:when>
<c:otherwise>
Somem JSP code
这里我无法理解代码${f:h(data.lastName)}
的含义,即使我删除f:h
,意味着我使用${(data.lastName)}
而不是${f:h(data.lastName)}
,那么它给出我的结果一样,那么f:h
有什么用,它代表什么?
看起来您的代码使用了 JSEL 标记库。
Java Standard EL Functions(JSEL) provides standard EL functions for web application development.
您的 jsp 页面必须包含以下行,以包含标签库:
<%@ taglib uri="http://amateras.sf.jp/functions" prefix="f" %>
如果你仔细阅读JSEL提供的功能描述,功能f:h(String value)
用于转义HTML标签.
$ 是使用 JSP EL.
的语法
所以,代码 ${f:h(data.lastName)} 和 ${(data.lastName)} 之间的区别是,${f:h(data.lastName)}只是转义字符串中的任何 HTML 内容。
只需尝试在您的页面上打印 HTML 标签说 <p>example<p>
。使用 ${f:h(data.lastName)},您将能够在您的页面上查看 <p>example<p>
文本。但是,如果您使用 ${(data.lastName)},您将只能在您的页面上看到 example
文本,因为这次 HTML 标签没有被转义。
我试图了解现有的 Spring MVC 应用程序,在 JSP 页面中我找到了以下代码
<c:forEach items="${responseData}" var="data">
<li>
<c:choose>
<c:when test="${data.firstName}">
<span class="strike">
${f:h(data.lastName)}
</span>
</c:when>
<c:otherwise>
Somem JSP code
这里我无法理解代码${f:h(data.lastName)}
的含义,即使我删除f:h
,意味着我使用${(data.lastName)}
而不是${f:h(data.lastName)}
,那么它给出我的结果一样,那么f:h
有什么用,它代表什么?
看起来您的代码使用了 JSEL 标记库。
Java Standard EL Functions(JSEL) provides standard EL functions for web application development.
您的 jsp 页面必须包含以下行,以包含标签库:
<%@ taglib uri="http://amateras.sf.jp/functions" prefix="f" %>
如果你仔细阅读JSEL提供的功能描述,功能f:h(String value)
用于转义HTML标签.
$ 是使用 JSP EL.
的语法所以,代码 ${f:h(data.lastName)} 和 ${(data.lastName)} 之间的区别是,${f:h(data.lastName)}只是转义字符串中的任何 HTML 内容。
只需尝试在您的页面上打印 HTML 标签说 <p>example<p>
。使用 ${f:h(data.lastName)},您将能够在您的页面上查看 <p>example<p>
文本。但是,如果您使用 ${(data.lastName)},您将只能在您的页面上看到 example
文本,因为这次 HTML 标签没有被转义。