Java Can';t将对象从servlet获取到jsp
我是JavaEE的初学者。我用一个简单的例子将对象从servlet发送到jsp。在jsp中,我想在站点页面上显示这些对象的值。我使用${}获取对象,但它不起作用。谁能帮帮我吗?下面是我的test.java和test.jsp代码: test.java: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
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)处存在错误:(