本人刚接触jstl
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
index.jsp页面代码如下:
  <table>
  <jsp:useBean id="foodop" class="hust.operation.FoodOperation"/>
  <c:set var="foods" value="${foodop.foods}" scope="session"/>
  <c:forEach var="subFood" items="${sessionScope.foods}" varStatus="status">
  <c:if test="${status.index%2==0}">
   <TR>
  </c:if>
   <TD><a href="demo3.jsp?foodId=${subFood.foodID}">${subFood.foodName }</a></TD>
  <c:if test="${status.index%2==1}">
   </TR>
  </c:if>
  </c:forEach>
  </table>
demo3.jsp页面代码如下:
  <body>
    <c:set var="foodId" value="${param.foodId}" scope="page"/>    
    <c:forEach var="subFood" items="sessionScope.foods">
     <c:if test="${foodId==subFood.foodID}">
     <c:set var="foodToAdd" value="subFood"/>
     </c:if>
    </c:forEach>
    ${foodToAdd.foodName }</br>
    ${foodToAdd.foodPrice }
  </body>
FoodBean中存在
private int foodID;
public int getFoodID() {
return foodID;
}
public void setFoodID(int foodID) {
this.foodID = foodID;
}
index.jsp页面正常显示,在跳转到demo3.jsp中时报如下错误:(苦解)
javax.servlet.ServletException: Unable to find a value for "foodID" in object of class "java.lang.String" using operator "."
javax.servlet.jsp.el.ELException: Unable to find a value for "foodID" in object of class "java.lang.String" using operator "."
求助于各位大侠

解决方案 »

  1.   

    把这条语句
    <a href="demo3.jsp?foodId=${subFood.foodID}">${subFood.foodName } </a>
    改成如下的语句试试
    <a href="demo3.jsp?foodId=<c:out value='${subFood.foodID}'/>"><c:out value='${subFood.foodName }'/> </a>可能是你在用${subFood.foodID}取值的时候没有用jstl标签  这样做时不行的
      

  2.   

     <c:forEach var="subFood" items="sessionScope.foods"> 
        <c:if test="${foodId==subFood.foodID}"> 
        <c:set var="foodToAdd" value="subFood"/> 
        </c:if> 
        </c:forEach> 应该是
    c:forEach var="subFood" items="${sessionScope.foods}">