JSTL问题, Don't know how to iterate over supplied "items

时间:2022-09-09 14:30:10
不知道为什么啊
 页面加上这句话后就错误了
<c:forEach items="${msglist}" var="item" begin="0" end="9" step="2" varStatus="var">
       <c:if test = "${var.index % 2 == 0}">
           *
       </c:if>
        ${item}<br>
     </c:forEach>

那为高手给点指点啊  谢谢了

10 个解决方案

#1


你确定msglist是一个集合吗? 你是不是少写了它的上一级,如"model.msglist"?

#2


${item}<br/>
光这样你是想 做什么啊 输出吗?
输出应该用 <c:out value="${}"/>

#3


我确定我的集合是一个List 
List msglist = new List();
msglist.add("msg1");
msglist.add("msg2");
msglist.add("msg3");
result_map.put("msglist",msglist);

输出上的错误已经了  还是老问题

#4


result_map.put("msglist",msglist);?
这是干什么???

#5


jstl的默认scope是request. 通过request.setAttribute可以将msglist传到jsp上面去。
但是你的result_map.put("msglist",msglist);只是将msglist放入到result_map内(应该是一个map吧?),你确定你已经将msglist传到页面上了么?如果没有,JSP当然解析不出items了。

#6


protected ModelAndView onSubmit(Object obj ,BindException e)throws Exception{
LoginInfo logininfo = (LoginInfo)obj;
if(login(logininfo) ==0 ){
  HashMap result_map = new HashMap();
   result_map.put("logininfo",logininfo);
   List msglist = new List();
        msglist.add("msg1");
msglist.add("msg2");
msglist.add("msg3");
result_map.put("msglist",msglist);
return new ModelAndView (this.getSuccess_view(),result_map);
}else{
return new ModelAndView(this.getFail_view());
}

麻烦大家给看看到底是什么错误

#7


List msglist=new List();你确定你是这样写的,你要能编译的过,我服了你,List是个接口啊

#8


<c:forEach items="${msglist}" var="item" begin="0" end="9" step="2" varStatus="var">
end的值明显大于你的list.size();不过不知道这会不会影响,很少用到end属性,循环完就得了吧,还设什么下限,除非你确定你的用法没错

#9


把return new ModelAndView (this.getSuccess_view(),result_map);
改为return new ModelAndView (this.getSuccess_view(),"model",result_map);

在页面调用的时候用:
<c:forEach items="${model.msglist}" var="item" begin="0" end="9" step="2" varStatus="var">

另外,像guzuoshantou(孤小小)说的那样,List你也改一下

#10


多谢个位帮助 问题解决了 谢谢

#1


你确定msglist是一个集合吗? 你是不是少写了它的上一级,如"model.msglist"?

#2


${item}<br/>
光这样你是想 做什么啊 输出吗?
输出应该用 <c:out value="${}"/>

#3


我确定我的集合是一个List 
List msglist = new List();
msglist.add("msg1");
msglist.add("msg2");
msglist.add("msg3");
result_map.put("msglist",msglist);

输出上的错误已经了  还是老问题

#4


result_map.put("msglist",msglist);?
这是干什么???

#5


jstl的默认scope是request. 通过request.setAttribute可以将msglist传到jsp上面去。
但是你的result_map.put("msglist",msglist);只是将msglist放入到result_map内(应该是一个map吧?),你确定你已经将msglist传到页面上了么?如果没有,JSP当然解析不出items了。

#6


protected ModelAndView onSubmit(Object obj ,BindException e)throws Exception{
LoginInfo logininfo = (LoginInfo)obj;
if(login(logininfo) ==0 ){
  HashMap result_map = new HashMap();
   result_map.put("logininfo",logininfo);
   List msglist = new List();
        msglist.add("msg1");
msglist.add("msg2");
msglist.add("msg3");
result_map.put("msglist",msglist);
return new ModelAndView (this.getSuccess_view(),result_map);
}else{
return new ModelAndView(this.getFail_view());
}

麻烦大家给看看到底是什么错误

#7


List msglist=new List();你确定你是这样写的,你要能编译的过,我服了你,List是个接口啊

#8


<c:forEach items="${msglist}" var="item" begin="0" end="9" step="2" varStatus="var">
end的值明显大于你的list.size();不过不知道这会不会影响,很少用到end属性,循环完就得了吧,还设什么下限,除非你确定你的用法没错

#9


把return new ModelAndView (this.getSuccess_view(),result_map);
改为return new ModelAndView (this.getSuccess_view(),"model",result_map);

在页面调用的时候用:
<c:forEach items="${model.msglist}" var="item" begin="0" end="9" step="2" varStatus="var">

另外,像guzuoshantou(孤小小)说的那样,List你也改一下

#10


多谢个位帮助 问题解决了 谢谢