1.先做一个userinfoBean;
2.再做一个Bean里面放一个ArrayList的属性userinfoBeans,用来存放每个userinfoBean
3.再将这个Bean放到Request里:httpServletRequest.setAttribute("xxx",thisBean);
4.JSP页面里:
<logic:iterate id="userinfoBean" name="xxx" property="userinfoBeans" scope="request">
<bean:write name="first"/>
<bean:write name="second"/>
</logic:iterate>
2.再做一个Bean里面放一个ArrayList的属性userinfoBeans,用来存放每个userinfoBean
3.再将这个Bean放到Request里:httpServletRequest.setAttribute("xxx",thisBean);
4.JSP页面里:
<logic:iterate id="userinfoBean" name="xxx" property="userinfoBeans" scope="request">
<bean:write name="first"/>
<bean:write name="second"/>
</logic:iterate>
请查一下编译后的java文件.
MainAction.java 代码:
/*
*/
package Actions;import org.apache.struts.action.*;
import javax.servlet.http.*;
import delegate.UserInfoDelegate;
import java.util.List;
import java.util.ArrayList;
import valueobject.UserInfo;public class MainAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ArrayList list = new ArrayList();
list.add("first");
list.add("second");
System.out.println("list size is:"+list.size()); //这里打出来size 是 2
httpServletRequest.setAttribute("xxx",list);//这里没用formbean,直接放在request里
ArrayList templist = (ArrayList)httpServletRequest.getAttribute("xxx");
System.out.println("request have:"+templist.get(0).toString());//打出来是 first
return actionMapping.findForward("ok");
}
}
这是struts-config.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<action-mappings>
<action " path="/mainAction" scope="request" type="Actions.MainAction">
<forward name="ok" path="index.jsp" redirect="true" />
</action>
</action-mappings>
</struts-config>index.jsp代码:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<html>
<head>
<title>
index
</title>
</head>
<body>
<logic:iterate id="userinfo" name="xxx" scope="request">
<bean:write name="userinfo"/>
</logic:iterate>
</body>
</html>代码都很简单,就是一个在action里面放对象在request里,转发后在web里面取出,
但就是在找不到这个 放在request里的bean...
12:25:36,248 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Cannot find bean xxx in scope request
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:1013)
at org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:
232)
at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:83)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
14)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
lter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:178)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrinc
ipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:153)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
e.java:59)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWor
kerThread.java:112)
at java.lang.Thread.run(Thread.java:536)
去掉redirect="true"看看
classjava(原始野人) ,我刚刚又加上
redirect="true"试了一下,在地址拦出现了
http://localhost:8080/ooooo/index.jsp;jsessionid=930CD59BE5AECE1804AC3572A802275F
怎么会是jsessionid=930CD59BE5AECE1804AC3572A802275F??