清理消息在 JSP 页面中不起作用

问题描述 投票:0回答:1

我有

<%@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}" />

我不确定这里缺少什么。

java jsp owasp sanitization
1个回答
0
投票

您在 EL 表达式中使用 scriptlet 变量。这不起作用。名为

errorMassage
的变量不包含在 JSP 使用的任何作用域中。因此无法找到它,直到您重写代码以删除 scriptlet 或将变量放入页面范围。如何在页面范围内创建变量?看看这个:

<c:set var="errorMessage" scope="page"><%=errorMessage%></c:set>

现在您可以使用

${errorMessage}

© www.soinside.com 2019 - 2024. All rights reserved.