2013-08-28 4 views
4

Таким образом, в моем Servlet У меня есть следующие:JSP GetAttribute() возвращают нуль

public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 
     resp.setContentType("text/html"); 
     req.setAttribute("colNames","ka"); 
     req.setAttribute("items", new String[]{}); 
     //System.out.println(req.getAttribute("colNames")); 
     req.getRequestDispatcher("/index.jsp").forward(req,resp); 
} 

Мой Servlet:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ page isELIgnored="false"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>NewGem OrderInfo</title> 
    <script src="sorttable.js"></script> 
</head> 
<body> 
<%= request.getAttribute("colNames") %> 
<table id="table" class="sortable"> 
    <tr> 
     <c:forEach items="${param.colNames}" var="col"> 
      <td>${col}</td> 
     </c:forEach> 
    </tr> 
    <c:forEach items="${param.items}" var="row"> 
     <tr> 
      <c:forEach items="${row.elements()}" var="value"> 
      <td>${value}</td> 
      </c:forEach> 
     </tr> 
    </c:forEach> 
</table> 
</body> 
</html> 

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <display-name>EntityDumpServlet</display-name> 
    <welcome-file-list> 
     <welcome-file>dump</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>EntityDumpServlet</servlet-name> 
     <servlet-class> 
      com.jpmorgan.d1.ptg.web.EntityDumpServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>EntityDumpServlet</servlet-name> 
     <url-pattern>/dump</url-pattern> 
    </servlet-mapping> 
</web-app> 

Так я просто запустив get, у вас только этот сервлет ничего больше.

Я знаю, что я должен использовать JSTL, и это так, но это был мой способ проверить, что это не проблема JSTL, а какая-то проблема с java. У кого-нибудь есть идеи?

PS: Если у меня есть только <%= request %>, я получаю [email protected], поэтому проблема заключается не в том, чтобы не выдать результат String.
И если я делаю на сервлете System.out.println(req);, я получаю [email protected], что означает, что по какой-либо причине пропущенный или полученный запрос отличается?

Результат: Оказалось, что по какой-то причине IDE делает некоторые странные вещи и вводит эту проблему в пересылку. Когда я развернул его с помощью maven, скомпилированного WAR-файла на tomcat, он работал нормально.

+0

попробуйте простую строку сначала, чтобы узнать, есть ли проблема с вашим массивом или с диспетчером –

+1

Можете ли вы показать свой фактический код с точным потоком. –

+0

Все еще null, проблема с отправкой, но я не могу понять, как это можно сделать. –

ответ

4

Вы не приписываете его String. request.getAttribute() вернет Object.

Попробуйте использовать это и посмотреть, если он работает:

String value = (String)request.getAttribute("colnames"); 

Или

<%= (String)request.getAttribute("colNames") %> 

Почему вы используете forEach здесь? Вам просто нужно отобразить String? Кроме того, не var="col"должны быть ------>var = "colNames"

 <tr> 
     <c:forEach items="${param.colNames}" var="col"> 
      <td>${col}</td> 
     </c:forEach> 
    </tr> 
1

Вы должны использовать,

request.getSession().setAttribute("colNames",yourObject); 

Чтобы сохранить его через запрос/ответ, а затем вытащить его сессии на вашей странице JSP.

Смежные вопросы