c:forEach不迭代所有值

时间:2016-02-20 16:05:35

标签: java session foreach jstl

我有一个标记为会话的arraylist,当我尝试使用c:forEach进行迭代时,它只显示前两个类和那里的属性,当它涉及该arraylist中的第三个类元素时,它只是不显示属性值。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<table id="myTable"> 
    <c:choose>
        <c:when test="${jednaRez.stoRez.zauzetostStola == false || nema == true}"> 
            <tr>                          
                <td style="border: 0;"> 
                    <p style="font-size: 15px;">
                      &nbsp &nbspZauzetost stola: &nbsp <b>Slobodan </b> 
                    </p>
                </td>
            </tr>
        </c:when>
        <c:otherwise>
            <c:forEach items="${rezeSto}" var="rezSto">
                <tr>                          
                    <td style="border: 0;"> 
                        <p style="font-size: 15px;">
                          &nbsp &nbspZauzetost stola: &nbsp <b>Zauzet </b> 
                        </p>
                    </td>
                </tr>                       
                <tr>                          
                    <td style="border: 0;"> 
                        <p style="font-size: 15px;">
                          &nbsp &nbspDatum rezervacije: &nbsp <b> <span id="datumRez">  ${rezSto.datumRezervacije} </span> </b>
                        </p>
                    </td>
                </tr>   
                <tr>                          
                    <td style="border: 0;">
                        <p style="font-size: 15px;">
                           &nbsp &nbspTrajanje rezervacije: &nbsp <b> ${rezSto.rezervacijaTrajanje} </b> 
                        </p>
                    </td>                                 
                </tr>
                <tr>                          
                    <td style="border: 0;">
                        <p style="font-size: 15px;">
                           &nbsp &nbspKorisnici:<b> &nbsp ${rezSto.gost.korisnikIme} &nbsp ${rezSto.gost.korisnikPrezime} &nbsp </b><!--   <c:forEach items="${rezSto.pozvaniPrijatelji}" var="pri"> ,<b> ${pri.gost.korisnikIme} &nbsp ${pri.gost.korisnikPrezime}  </b> ,   </c:forEach>--> <br/>
                           ____________________________________________________________
                        </p>
                    </td>                                 
                </tr>
                <br/>
            </c:forEach>
        </c:otherwise>
    </c:choose>                                                                                                                                                                                                  
</table>

有什么想法吗?

这是servlet,我创建了arrayList rezeSto:

Korisnik men = (Korisnik) request.getSession().getAttribute("menadzer");
    ArrayList<Rezervacija> sveRez = new ArrayList<Rezervacija>(rezervacijaDao.rezRestoran(men.getRestoran().getId()));
    ArrayList<Rezervacija> vazeceRez = null;
    try {
        vazeceRez = new ArrayList<Rezervacija>((List<Rezervacija>)men.vazeceRez(sveRez));
    } catch (ParseException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    ArrayList<Rezervacija> rezStoIsti = new ArrayList<Rezervacija>();
    //samo one rezervacije koje sadrze poslati sto
    for(int i=0; i<vazeceRez.size(); i++)
    {
        if(vazeceRez.get(i).getStoRez().getId().equals(sifraStola))
        {
            rezStoIsti.add(vazeceRez.get(i));
        }
    }


    request.getSession().setAttribute("nema", false);
    if(rezStoIsti.size() == 0)
    {
        request.getSession().setAttribute("nema", true);
    }
    else
    {
        request.getSession().setAttribute("jednaRez", rezStoIsti.get(0));
        request.getSession().setAttribute("rezeSto", rezStoIsti);
    }



    request.getRequestDispatcher("stoPrikaz.jsp").forward(request, response);           
    return;

1 个答案:

答案 0 :(得分:0)

如果c:forEach打印前两个并且您没有看到其他列表元素,我会认为当第二个打印出来时会破坏您的HTML,这就是您没有看到它的原因,尝试调试也许真的会打印出一些特殊字符。