Я печатаю список непосредственно в сервлете, используя печатающий аппарат и распечатывает список.Объект, внезапно отсутствующий в HttpServletRequest
Когда я пытаюсь поместить в jsp, однако список не печатает, использую ли я JSTL или скриптлеты.
Я попытался проверить в JSTL и скриптлет, если объект имеет значение null и получается, что он есть!
Почему это происходит и как я могу это исправить?
кодServlet, который работает
for (Artist artist:artists){
resp.getWriter().println(artist.getName());
}
Servlet код, который помещает объект в запросе
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();
}
скриптлет кода, который неожиданно находит объект 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());
}
}
%>
Даже код JSTL КАЖЕТСЯ согласиться
<c:if test="${artists eq null}">
Artists are null
</c:if>
<c:forEach var="artist" items="${artists}">
${artist.name}
</c:forEach>
Для моего приложения я использую weblogic, весна 2.5.6 и ibatis.
Есть ли у вас шанс попробовать другой сервер приложений? Я не вижу никаких проблем с кодом - setAttribute/requestDispatch - общий шаблон. – mdma
Я должен использовать weblogic здесь на работе, но я попробую тестировать в tomcat. Как и вы, я думал, что это проблема с сервером приложений. – Jeune