Java Can';t将对象从servlet获取到jsp

Java Can';t将对象从servlet获取到jsp,java,html,jsp,jakarta-ee,servlets,Java,Html,Jsp,Jakarta 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

我是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 );
}
公共类测试扩展了HttpServlet{
public void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
/*确认和初始化消息*/
字符串paramAuteur=request.getParameter(“auteur”);
字符串消息=“变速箱de变量:确定!”+参数;
/*对固有资产进行初始化*/
郊狼=新的郊狼();
premierBean.setNom(“郊狼”);
premierBean.setPrenom(“Wile E.”);
/*列表和插入四分之一*/
List premiereListe=new ArrayList();
总理公报第27页;
总理级文件增补(12);
总理名单增补(138);
总理级会议。添加(6);
/*信息库存、货物和服务请求*/
setAttribute(“测试”,消息);
setAttribute(“郊狼”,premierBean);
setAttribute(“liste”,premireliste);
/*请求/响应支付请求/响应的传输*/
this.getServletContext().getRequestDispatcher(“/WebContent/test.jsp”).forward(请求,响应);
}
}

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>
Ceci est une页面générée depuis une JSP

${test} ${param.auteur}

咖啡豆配餐: ${requestScope.coyote.prenom} ${requestScope.coyote.nom}

李斯特杯:


谢谢,

您可以这样做:

<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>

${list}


尝试下面的答案--您的请求属性应该在JSP中可见。

那么,执行此代码时会发生什么?您说过您使用JSP EL(${…}),但我在发布的JSP代码中没有看到类似的内容。您好,对不起,我试图用HTML代码发布所有JSP。但它不起作用。事实上,我觉得我的jsp无法从test.java接收对象。第:行for(Integer i:list)出现错误,因此我添加了if{…}来验证这一点。我看到那个列表是空的。大家好,我发现了问题。我无法将对象从test.java发送到test.jsp,因为我把test.jsp放错了位置,它必须在WEB-INF中找到。对不起,耽误了您的时间。像这样内联原始java代码与现代jsp背道而驰。理想情况下,JSP应该更具声明性,Java应该在JSP运行之前准备好bean。如果您这样做,您的Java代码将被分解并与HTML混合在一起。我知道,我不会在代码中使用Scriptlet。因为OP已经在scriptlet中编写了代码,所以我使用scriptlet来说明如何做到这一点……:)嗨,Sas,我试过你的代码,但没用。它说for(Integer list:lists)处存在错误:(