2010-12-21 17 views
0
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<style type="text/css"> 
.even { 
background-color: silver; 
} 
</style> 
<title>Registration Page</title> 
</head> 
<body> 

<form:form action="add.htm" commandName="user"> 
<table> 
    <tr> 
    <td>User Name :</td> 
    <td><form:input path="name" /></td> 
    </tr> 
    <tr> 
    <td>Password :</td> 
    <td><form:password path="password" /></td> 
    </tr> 
    <tr> 
    <td>Gender :</td> 
    <td><form:radiobutton path="gender" value="M" label="M" /> <form:radiobutton 
    path="gender" value="F" label="F" /></td> 
    </tr> 
    <tr> 
    <td>Country :</td> 
    <td><form:select path="country"> 
    <form:option value="0" label="Select" /> 
    <form:option value="India" label="India" /> 
    <form:option value="USA" label="USA" /> 
    <form:option value="UK" label="UK" /> 
    </form:select></td> 
    </tr> 
    <tr> 
    <td>About you :</td> 
    <td><form:textarea path="aboutYou" /></td> 
    </tr> 
    <tr> 
    <td>Community :</td> 
    <td><form:checkbox path="community" value="Spring" 
    label="Spring" /> <form:checkbox path="community" value="Hibernate" 
    label="Hibernate" /> <form:checkbox path="community" value="Struts" 
    label="Struts" /></td> 
    </tr> 
    <tr> 
    <td></td> 
    <td><form:checkbox path="mailingList" 
    label="Would you like to join our mailinglist?" /></td> 
    </tr> 
    <tr> 
    <td colspan="2"><input type="submit" value="Register"></td> 
    </tr> 
</table> 
</form:form> 
<c:if test="${fn:length(userList) > 0}"> 
<table cellpadding="5"> 
    <tr class="even"> 
    <th>Name</th> 
    <th>Gender</th> 
    <th>Country</th> 
    <th>About You</th> 
    </tr> 
    <c:forEach items="${userList}" var="user" varStatus="status"> 
    <tr class="<c:if test="${status.count % 2 == 0}">even</c:if>"> 
    <td>${user.name}</td> 
    <td>${user.gender}</td> 
    <td>${user.country}</td> 
    <td>${user.aboutYou}</td> 
    </tr> 
    </c:forEach> 
</table> 
</c:if> 
</body> 
</html> 

Wenn ich meine JSP-Seite ausführen, wird dieses Stück Code überhaupt nicht angezeigt. Der vollständige Quellcode ist unten.JSTL-Code Ausgabe

<c:if test="${fn:length(userList) > 0}"> 
    <table cellpadding="5"> 
     <tr class="even"> 
      <th>Name</th> 
      <th>Gender</th> 
      <th>Country</th> 
      <th>About You</th> 
     </tr> 
     <c:forEach items="${userList}" var="user" varStatus="status"> 
      <tr class="<c:if test="${status.count % 2 == 0}">even</c:if>"> 
       <td>${user.name}</td> 
       <td>${user.gender}</td> 
       <td>${user.country}</td> 
       <td>${user.aboutYou}</td> 
      </tr> 
     </c:forEach> 
    </table> 
</c:if> 

Antwort

2

Dies kann passieren, wenn JSTL überhaupt nicht installiert ist. Um dies zu überprüfen, klicken Sie mit der rechten Maustaste auf die Seite im Webbrowser und wählen Sie Quelle anzeigen. Wenn JSTL-Tags unter der gesamten HTML-Quelle nicht geparst sind, bedeutet dies, dass sie tatsächlich nicht installiert ist. Sie müssen die JSTL-JAR (s) dann in den Ordner /WEB-INF/lib legen. Für Tomcat 6.x oder neuer ist es ausreichend, nur die jstl-1.2.jar Datei darin zu löschen (und sicherzustellen, dass Ihr web.xml laut Servlet 2.5 Spezifikation deklariert ist). Wenn Sie jedoch keine JSTL-Tags in der HTML-Quelle sehen, bedeutet dies, dass die Bedingung ${fn:length(userList) > 0} immer false ist. Sie müssen sicherstellen, dass dies nicht der Fall ist, indem Sie ein nicht leeres userList als Anforderungsattribut angeben.

Übrigens, die ${fn:length(userList) > 0} kann auch zu ${not empty userList} vereinfacht werden.

+0

Ich bekomme java.lang.NoSuchFieldError nicht: deferedExpression Fehler. – theJava

+0

Dann ist Ihr Klassenpfad mit mehreren verschiedenen versionierten JSTL-Bibliotheken belastet. Stellen Sie sicher, dass Sie kein 'jstl.jar' und' standard.jar' haben, sondern nur 'jstl-1.2.jar'. – BalusC