Object suddenly missing from HttpServletRequest

Posted by Jeune on Stack Overflow See other posts from Stack Overflow or by Jeune
Published on 2010-05-17T07:29:36Z Indexed on 2010/05/17 7:30 UTC
Read the original article Hit count: 322

Filed under:
|
|
|

I print a list directly in the servlet using the print writer and the list prints.

When I try to put in the jsp however the list doesn't print whether I use JSTL or scriptlets.

I tried to test in JSTL and scriptlet if the object is null and turns out that it is!

Why does this happen and how can I fix this?

Servlet code that works

for (Artist artist:artists){
    resp.getWriter().println(artist.getName());
}

Servlet code that puts object in the request

public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws IOException {        

    ApplicationContext ctx = 
        new ClassPathXmlApplicationContext("com/helloworld/beans/helloworld-context.xml");

    ArtistDao artistDao = (ArtistDao) ctx.getBean("artistDao");
    List<Artist> artists = null;
    try {
        artists = artistDao.getAll();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    req.setAttribute("artists", artists);

    try {
        req.getRequestDispatcher("index.jsp").forward(req, resp);
    } catch (ServletException e) {
        e.printStackTrace();
    }

scriptlet code that suddenly finds the object null

<% 

    List<Artist> artists = (List<Artist>) request.getAttribute("artists");

    if (artists == null) {
        out.println("artists null");
    }
    else {
        for (Artist artist: artists){
            out.println(artist.getName());
        }
    }
%>

Even the jstl code seems to agree

<c:if test="${artists eq null}">
    Artists are null
</c:if>

<c:forEach var="artist" items="${artists}">
${artist.name}
</c:forEach>

For my app I am using weblogic, spring 2.5.6 and ibatis.

© Stack Overflow or respective owner

Related posts about weblogic

Related posts about j2ee