当用hibernate 查出一个list时 在网页中用el拿他的值时,出下面的错误
javax.servlet.ServletException: 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.
我找了半天的原因.list有值.什么就拿不出来呢?
在网上找了找.就http://bbmyth.iteye.com/blog/31816 中有点说明.但说的不什么清楚.
我现在把原因说一下.
hibertate 拿出的list中放的是一个Object[] obj 数组.要拿他的值要用 obj[0],obj[1]来拿.在网页可以用
<% for (Iterator iter=list.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
%>
<%=obj[1] %>
<%} %>
或用EL表达式:
<!-- user这个是一个Object 在下面的要用数组来拿=obj[1] ${user[1 ]} -->
<c:forEach items="${list}" var="user" varStatus="df">
<option value="${user[1] }">${user[1 ]}</option>
</c:forEach>
如我的user 有id ,name ,age
obj[0],就是你定义的user的第一个变量id, obj[1],就是你定义的user的第二个变量name.