2010-12-21 69 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> 

當我執行我的jsp頁面時,這段代碼根本沒有顯示出來。完整的源代碼如下。jstl代碼問題

<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> 

回答

2

當沒有安裝JSTL時會發生這種情況。要檢查此操作,請在瀏覽器中右鍵單擊並選擇查看源代碼。如果您在所有HTML源代碼中看到JSTL標籤未解析,那麼這意味着它確實沒有安裝。您需要將JSTL JAR(s)放入/WEB-INF/lib文件夾中。對於Tomcat 6.x或更新版本,只需在其中放入jstl-1.2.jar文件(並確保您的web.xml已按照Servlet 2.5規範聲明)即可。

但是,如果您在HTML源代碼中沒有看到JSTL標籤,那麼這意味着條件${fn:length(userList) > 0}總是false。您需要通過將非空的userList作爲請求屬性來確保不是這種情況。

順便說一下,${fn:length(userList) > 0}也可以簡化爲${not empty userList}

+0

我沒有得到java.lang.NoSuchFieldError:deferredExpression錯誤。 – theJava 2010-12-22 07:17:02