我有
<%@taglib prefix="e" uri="https://www.owasp.org/index.php/OWASP_Java_Encoder_Project" %>
也仅用于测试
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
在 JSP 页面的顶部。
我只是想清理错误消息。
以下内容有效,所以我知道该消息存在。
<% if(errorMessage != null) { %>
<span class="error"><%=errorMessage%></span>
<% } %>
但是,如果我使用以下任何一项,它都不起作用并且不显示任何内容:
<p>Dynamic data via EL: ${e:forHtml(errorMessage)}</p>
<p>Dynamic data via tag: <e:forHtml value="${errorMessage}" /></p>
<c:out value="${errorMessage}" />
我不确定这里缺少什么。
您在 EL 表达式中使用 scriptlet 变量。这不起作用。名为
errorMassage
的变量不包含在 JSP 使用的任何作用域中。因此无法找到它,直到您重写代码以删除 scriptlet 或将变量放入页面范围。如何在页面范围内创建变量?看看这个:
<c:set var="errorMessage" scope="page"><%=errorMessage%></c:set>
现在您可以使用
${errorMessage}