JSTL taglib问题

时间:2011-02-24 13:01:53

标签: jsp jstl

我有一个简单的maven web项目。我根本想不出让JSTL标签工作的方法。 出于测试目的,我创建了一个没有依赖项的虚拟项目,除了:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>

在我的JSP页面中,我有以下测试代码 -

<c:set var="hello" value="see this?"/>
<c:out value="${hello}"></c:out>
<h2>${hello}</h2>
<br/>
<%=request.getAttribute("hello") %>

我还在顶部包含了jstl声明 - <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

但是,这似乎不起作用。令人惊讶的是,${hello}没有显示任何有意义的内容,但request.getAttribute...却有效。这意味着c:set实际上正在工作,c:out和简单表达式都不起作用。我错过了什么吗?

任何帮助都表示赞赏 - 现在试图让我的头脑在这3天了!

2 个答案:

答案 0 :(得分:1)

JSTL jar只包含规范的标准类和接口,但没有标记的实现。

将此依赖项添加到您的pom:

<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>
BTW,请始终查看生成的HTML代码,了解正在发生的事情。 c:set标记设置页面范围属性,而不是请求范围属性,因此request.getAttribute("hello")输出内容的事实没有任何内容与之前放置的c:set标记有关。

答案 1 :(得分:0)

解决方案是检查StackOverflow中提供的info document on JSTL。它提到了几乎所有关于JSTL安装可能无法正常工作的原因。

相关问题