为什么$ {variable}没有被替换

时间:2012-08-24 08:46:25

标签: java jsp

我有一小段代码

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
    <title><%= request.getAttribute("index_title") %></title>
</head>
<body>
<c:out value="${request['index_title']}" />
</body>
</html>

表达式<%= request.getAttribute("index_title") %>被正确替换,但<c:out value="${request['index_title']}" />不是。我还尝试了${request['index_title']}${index_title}但没有人工作。

这是我的第一个jsp,所以我认为它一定是一个微不足道的错误,但我无法理解错误的位置。

其他问题:

在我的servlet中我做request.setAttribute ("index_title", "page title");。问题可能与我在请求中添加的内容不是bean有关吗?

3 个答案:

答案 0 :(得分:0)

将代码更改为

<c:out value="${requestScope.index_title}"/> 

答案 1 :(得分:0)

只需使用

<c:out value="${index_title}"/>

答案 2 :(得分:0)

您可以只使用表达式语言,而不使用jstl库。

直接在html中使用${index_title}(或${requestScope.index_title},不确定):

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
    <title><%= request.getAttribute("index_title") %></title>
</head>
<body>
${index_title}
</body>
</html>

修改

不,您可以添加任何属性。