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