2010-11-03 24 views
6

Hallo habe ich den folgenden Code:Probleme mit JSTL forEach in JSF 2

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:p="http://primefaces.prime.com.tr/ui" 
    xmlns:c="http://java.sun.com/jsp/jstl/core" 
> 

<h:body> 
<c:forEach items="#{backingBean.personList}" var="person"> 
    <h:outputText value="#{person.name}" /> 
</c:forEach> 
</h:body> 
</html>  

Dies schlägt mit:

java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.LoopTagStatus 

Ich benutze jstl-impl-1.2.jar. Kann mir hier jemand helfen? Dank

Marcel

Antwort

5

Was standard.jar?

Haben Sie beide JARs in WEB-INF/lib?

+0

Das war schnell. Ich habe die Implementierung 1.2 von https://jstl.dev.java.net/download.html benutzt, die kein standard.jar bietet. Ich habe jetzt die Version 1.1.2 Jakarta ausprobiert und es funktioniert. Danke Marcel –

+2

Wenn das das Problem behoben hat, dann bedeutet das, dass Ihre web.xml als Servlet 2.4 oder älter statt als Servlet 2.5 oder neuer deklariert wurde. Versuchen Sie, die Datei "web.xml" auf die maximale Servlet-Version zu deklarieren, wie sie von Servletcontainer unterstützt wird. – BalusC

2

Wenn Speicher mir richtig dient, verwendet der JSTL-Kern EL, die Syntax wie diese ${} statt #{} hat.

12

Ich denke, Sie vermissen ein JSTL-Api-Glas.

Klassenname Suche auf sonatype's nexus zurück diese Maven Abhängigkeit:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.1.2</version> 
</dependency> 

Sie können download it from this page, wenn Sie verwenden Maven nicht.

Sie können auch Findjar.com verwenden, um occurrences of the class zu finden.