<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="get" class="com.biz.MessageList" /><c:set var="MessageInfo" value="${get.MessageInfo}" scope="session"/>
<c:forEach var="uses" items="sessionScope.MessageInfo" varStatus="status"/>
<body> 

${uses.MessageInfo }
</body>
页面显示
public List<Message> getMessagte(){
List<Message> messageL= new ArrayList<Message>();
super.openConn();
try {
String sql = "select * from Message";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
Message ms=new Message();
ms.setFromId(rs.getInt(1));
ms.setMessageInfo(rs.getString(2));
ms.setToId(rs.getInt(3));
ms.setIsOpen(rs.getInt(4));
ms.setDate(rs.getDate(5));
messageL.add(ms);
}
} catch (SQLException e) {
e.printStackTrace();
}
finally{
super.closeAll();
}
return messageL;
}
}
为什么el表达式吧出来?菜鸟提问有get set

解决方案 »

  1.   

    el表达式获取的值是需要放在属性范围中的比如:<body>

      <%
       String admin="jianglh";
       request.setAttribute("str",admin);
       String[] a=new String[5];
       a[0]="1";
       a[2]="2";
       a[1]="3";
       request.setAttribute("array",a);
       
       
       List list = new ArrayList();
       list.add("aa");
       list.add("bb");
       list.add("cc");
       request.setAttribute("arraylist",list);
       %>
    <c:if test="${str=='admin'}">
       <c:out value="${str}"></c:out>
    </c:if>
    el: expression:${array[0] }<br>
    <hr>
    el:expression :${arraylist[1] }<br>
    c:lable   <c:forEach items="${arraylist}" var="tt">
     
     ${tt}
      

  2.   


    <c:set var="MessageInfo" value="${get.MessageInfo}" scope="session"/>
    <c:forEach var="uses" items="sessionScope.MessageInfo" varStatus="status"/>  你上面的set我没用过但是我看了下。。var是变量名。value是要存储的值,scope是作用域 ,首先要确保你的value里面的值是对的,,其次你的items必须要是个数组对象,,  你的list 本来就get set了在jsp就没必要用上面c标签的set了吧,,直接items=“${messageL}” 就可以变量了