用hibernate时的查询语句如下:
select message.messId,message.name,message.content,message.createTime,message.sender from UserInfoPO as user,MessagePO as message where user.number=:number and user.userId=message.user.userId order by message.messId
在页面显示的时候报如下的错误:
javax.servlet.jsp.el.ELException: The "." operator was supplied with an index value of type "java.lang.String" to be applied to a List or array, but that value cannot be converted to an integer.
如何解决?

解决方案 »

  1.   

    用hibernate时的查询语句如下: 
    select message.messId,message.name,message.content,message.createTime,message.sender from UserInfoPO as user,MessagePO as message where user.number=:number and user.userId=message.user.userId order by message.messId
    你这样查询所返回的结果集是集合类型封装数组  大概是:List<Object[]>
    也就是说你在循环该结果集后所得到的是个数据      
    因此在页面显示时应该是:
    <%
    for (int i = 0; i < list.size(); i++) {
    Object[] obj = (Object[])list.get(i);
    out.println("第一列:" + obj[0]);
    out.println("第二列:" + obj[1]);
    }
    %>
    如果你是用Jstl+El那就更好办了   哈哈  如下:
    <c:forEach items="${list}" var="obj">
    第一列:${obj[0]}
    第二列:${obj[1]}
    </c:forEach>