实体:
private String foodName;// 餐品名称public String getFoodName() {
return foodName;
} public void setFoodName(String foodName) {
this.foodName = foodName;
}
select :
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
String username=request.getParameter("txtloginid");
String pwd=request.getParameter("txtpass");
UserInfo u=new UserInfo(username,pwd);
UserInfo userInfo=UserInfoDao.findUserInfoByUsernameAndPassword(u);
try {
if (username.equals(userInfo.getLoginname())&&pwd.equals(userInfo.getLoginpass())) {
//如果用户存在查询所有餐品并跳转到show页面
List<FoodInfo> list=FoodInfoDao.findAllFoodInfo();
HttpSession session=request.getSession();
session.setAttribute("FoodInfo", list);
response.sendRedirect("main/show.jsp");
}else {
response.sendRedirect("login.jsp");
}
} catch (RuntimeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
response.sendRedirect("login.jsp");
}
}show页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><c:forEach items="FoodInfo" var="falg" varStatus="status"><td class="tdcls" valign="top">
<b>${falg.foodName }</b><br>
<font color="gray" >限价:人民币&nbsp; 
<font color="red">13</font>&nbsp;元</font><br>
</td></c:forEach>
错误:严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.el.ELException: Unable to find a value for "foodName" in object of class "java.lang.String" using operator "."
at org.apache.commons.el.Logger.logError(Logger.java:481)
at org.apache.commons.el.Logger.logError(Logger.java:498)
at org.apache.commons.el.Logger.logError(Logger.java:611)
at org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:340)
at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
。。

解决方案 »

  1.   

    session.setAttribute("FoodInfo", list);?确认下你的list中保存的对象是否为FoodInfo。
    使用打印system.out.println(request.getSession(). getAttribute("FoodInfo"));是否存在
      

  2.   


    <c:forEach items="${FoodInfo}" var="falg" varStatus="status"><td class="tdcls" valign="top">
    <b>${falg.foodName }</b><br>
    <font color="gray" >限价:人民币&nbsp;  
    <font color="red">13</font>&nbsp;元</font><br>
    </td></c:forEach>试试 迭代内容用el
      

  3.   

    <c:forEach items="${FoodInfo}" var="falg" varStatus="status"> 
    items 是从作用域里去取值的
      这里应该是里list没有找到值引发的异常
      

  4.   

    你的 FoodInfo  对象应该是空的,你再调试哈,在页面输出 FoodInfo对象中的一个值看看
    或者session 中存进去的值就是空的
      

  5.   


    <c:forEach items="${sessionScope.FoodInfo}" var="falg" varStatus="status"> <td class="tdcls" valign="top"> 
    <b>${falg.foodName } </b> <br> 
    <font color="gray" >限价:人民币&nbsp;  
    <font color="red">13 </font>&nbsp;元 </font> <br> 
    </td> </c:forEach> 
    你是把FoodInfo放在session 在session取下看看没用,或者看下list是否有值,试试debug调试