无法将对象从servlet获取到jsp

时间:2014-10-22 19:39:19

标签: java html jsp java-ee servlets

我是JavaEE的初学者。我做了一个简单的例子,将对象从servlet发送到jsp。在jsp中,我想在网站页面上显示这些对象的代码。我使用$ {}来获取对象,但它不起作用。有人可以帮帮我吗?我有test.java和test.jsp的代码: test.java:

public class Test extends HttpServlet {
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
    /* Création et initialisation du message. */
    String paramAuteur = request.getParameter( "auteur" );
    String message = "Transmission de variables : OK ! " + paramAuteur;

    /* Création du bean et initialisation de ses propriétés */
    Coyote premierBean = new Coyote();
    premierBean.setNom( "Coyote" );
    premierBean.setPrenom( "Wile E." );

    /* Création de la liste et insertion de quatre éléments */
    List<Integer> premiereListe = new ArrayList<Integer>();
    premiereListe.add( 27 );
    premiereListe.add( 12 );
    premiereListe.add( 138 );
    premiereListe.add( 6 );

    /* Stockage du message, du bean et de la liste dans l'objet request */
    request.setAttribute( "test", message );
    request.setAttribute( "coyote", premierBean );
    request.setAttribute( "liste", premiereListe );

    /* Transmission de la paire d'objets request/response à notre JSP */
    this.getServletContext().getRequestDispatcher( "/WebContent/test.jsp" ).forward( request, response );
}

}

jsp文件:

    <p>Ceci est une page générée depuis une JSP.</p>
    <p>
        ${test}
        ${param.auteur}
    </p>
    <p>
        Récupération du bean :
        ${requestScope.coyote.prenom}
        ${requestScope.coyote.nom}
    </p>
    <p>
        Récupération de la liste :
        <%
        ArrayList<Integer> list = (ArrayList) request.getAttribute("liste");
        for (Integer lis: list) {   
           %>
             <%=lis%>
           <%}
        %>
    </p>

谢谢,

2 个答案:

答案 0 :(得分:1)

你可以这样做:

<p>
  <%
   ArrayList<Integer> lists = (ArrayList<Integer>) request.getAttribute("liste");
   for (Integer list: lists) {   
   %>
     <%=list%>
   <%}%>
</p>

使用EL,您可以执行以下操作:

<p>
  <c:forEach items="${liste}" var="list">
   ${list}
  </c:forEach>
</p>

答案 1 :(得分:0)

从这里尝试答案 - How to access at request attributes in JSP? - 您的请求属性应该在JSP中可见。