【发布时间】:2014-08-30 04:13:07
【问题描述】:
这是我目前的情况: 我使用以下命令从我的 shell 创建了一个 Maven 项目:
mvn archetype:generate -DgroupId=it.my.current.package.example -DartifactId=Example -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
mvn package
然后我打开 Eclipse,将项目作为 Maven 导入。我将这些依赖项添加到我的
pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
然后我创建了一个 JSP 和一个 Servlet。
我的 servlet 只是设置了一些变量,而我的 JSP 将它们与一些 JSTL 一起使用。
我在我的 JSP 上添加了这个标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
而且我的 JSP 上的代码非常简单:
<c:forEach items="${requestScope.empList}" var="emp">
<tr>
<td><c:out value="${emp.id}"></c:out></td>
<td><c:out value="${emp.name}"></c:out></td>
<td><c:out value="${emp.role}"></c:out></td>
</tr>
</c:forEach>
我的 Servlet 正在这样做:
List<Employee> empList = new ArrayList<Employee>();
Employee emp1 = new Employee();
emp1.setId(1); emp1.setName("Sam");emp1.setRole("Developer");
Employee emp2 = new Employee();
emp2.setId(2); emp2.setName("John");emp2.setRole("Manager");
empList.add(emp1);empList.add(emp2);
request.setAttribute("empList", empList);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/home.jsp");
rd.forward(request, response);
Employee 是一个简单的 Bean。
当我尝试从我的 Servlet 运行这个应用程序时,它实际上在我的 JSP 上显示了这个:
${emp.id} ${emp.name} ${emp.role}
它没有显示我在 Servlet 上设置的值。
我对 JSTL 完全陌生,所以我首先在 Google 上搜索了我的问题。我尝试在我的$TOMCAT_HOME/lib 目录中添加jstl-1.2.jar,但没有成功。
那有什么问题呢?
编辑:我需要对容器和项目进行哪些配置才能运行 JSTL?我做的还不够吗?
【问题讨论】:
-
简单的
<td>${emp.id}</td>怎么样 -
@ScaryWombat 的输出是一样的。好像tomcat不能识别JSTL吧?
-
查看我的更新答案
标签: java jsp maven tomcat jstl