2010-11-03 7 views
6

Salut je suis arrivé le code suivant:Problèmes avec JSTL forEach dans 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>  

Cela échoue avec:

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

J'utilise jstl-impl-1.2.jar. Est-ce que quelqu'un pourrait m'aider sur celui-ci? Merci

Marcel

Répondre

5

Qu'en est-standard.jar?

Avez-vous les deux JAR dans WEB-INF/lib?

+0

C'était rapide. J'ai utilisé l'implémentation 1.2 de https://jstl.dev.java.net/download.html qui ne propose pas standard.jar. J'ai maintenant essayé la version 1.1.2 de jakarta et cela fonctionne. Merci Marcel –

+2

Si cela a corrigé le problème, cela signifie que votre fichier web.xml a été décatché en tant que servlet 2.4 ou plus ancien au lieu de servlet 2.5 ou plus récent. Essayez de déclarer le fichier web.xml à la version de servlet max prise en charge par servletcontainer. – BalusC

2

Si la mémoire est bonne, le noyau JSTL utilise EL dont la syntaxe est ${} plutôt que #{}.

12

Je pense qu'il vous manque un pot JSTL-api.

recherche Classname sur sonatype's nexus retourné cette dépendance Maven:

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

Vous pouvez download it from this page si vous ne pas utiliser Maven. Vous pouvez également utiliser Findjar.com pour trouver occurrences of the class.

Questions connexes