如何让EL不打印评估表达式?

时间:2016-02-08 07:48:20

标签: jsp el

我希望在每个jsp页面(similar to this question)中删除taglib声明。

这就是为什么我使用所有html头文件和taglib声明制作headr.jsp。我希望将它包含在每个JSP页面中:

<%@ include file="/WEB-INF/include/header.jsp" %>

其内容将以:

开头
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
...
<title>${pageScope.pageTitle}</title>

问题是我在header.jsp中有页面标题,我想改变它。我需要在包含header.jsp之前在我的jsp页面中设置它,但我不能使用c:set,因为JSTL尚未声明。我决定使用EL将pageTitle放在param或someScope映射中,如下所示:

${param.put("pageTitle", "Test")}

现在问题是我在这里得到了NPE。我几乎可以肯定这是由put()返回 null 引起的,当我向地图添加新条目时,EL会尝试将null打印到输出。

PS:我知道我可以使用scriptlet,但由于这是一个不好的做法,我根本不考虑它们并在web.xml中禁用它们。

0 个答案:

没有答案
相关问题