请教用session从jsp向action传List对象的问题,做了好几天了出不来,请大家帮忙

lee821129 2006-05-05 04:04:32
我需要从jsp向action传一List类型对象,jsp是这么写的,应该问题不大:
<%session.setAttribute("fileList","${files}"); %>
action中是这么写的 :
public HttpSession session;
List fileList=(List)session.getAttribute("fileList");
但是运行时action这条语句错误,到底应该怎么写呢?
我试过隐藏字段传不过去,大概只能用session传了。
...全文
591 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee821129 2006-05-07
  • 打赏
  • 举报
回复
不是得到null,是提示List fileList=(List)session.getAttribute("fileList");这句代码是错误的
lee821129 2006-05-07
  • 打赏
  • 举报
回复
有啊,在Action里我写了这样的代码,但是得到list为null啊
HttpSession session = request.getSession();
List fileList=(List)session.getAttribute("fileList");

请问到底应该怎么写啊?
jshi123 2006-05-07
  • 打赏
  • 举报
回复
按照你描述的情况,你采用的方法是正确的,程序也没错。

实际上是JSP页面得到一个List,保存在Session中,然后生成用于客户端显示的HTML页面。
在浏览器页面上点提交后,客户端提交请求到action,action在从Session中取出刚才存放的List。
这两个存、取过程都是在服务器端完成的,List本身也并非由客户端的用户输入,所以可以通过Session来完成。

现在程序运行还有问题吗?
lee821129 2006-05-07
  • 打赏
  • 举报
回复
基本概念我不太理解,需要的具体流程是,先得到从action中数据在JSP页面(可能是你说的HTML页面)显示,然后需要将显示的数据用Excel导出,这就需要将List类型从JSP页面传到负责导出的Action中,就是第二个传的过程我不会。
lee821129 2006-05-07
  • 打赏
  • 举报
回复
files传过去了,谢谢!!!!我想同时好几个问题也一起能解决了!!
谢谢jshi123()啦!!
lee821129 2006-05-07
  • 打赏
  • 举报
回复
.jsp我没有初始化呀,是不是要这样:
<c:set var="files" scope="session" value="${files}"/>
files我就是在action里request.setAttribute("files",files);我在下面直接可以显示了呀
<c:forEach items="${files}" var="file">
<tr>
<td><b>${file.fileID}</b></td>
<td><b>${file.fileName}</b></td>
<td><b>${file.fileSort}</b></td>
<td><b>${file.provideSort}</b></td>
<td><b>${file.provideDepartment}</b></td>
<td><b>${file.provideDateString}</b></td>
<td><b>${file.fileRemark}</b></td>
</tr>
</c:forEach>
先照你说的改,感谢呀!
楼上的兄弟看看还有那要改吗?
jshi123 2006-05-07
  • 打赏
  • 举报
回复
发现一个错误,jsp 中的语句应写成:
<% session.setAttribute("fileList", pageContext.findAttribute("files")); %>

上网太久头昏,这个明显的错误一直也没能发现……

还有,好像没看到你初始化“files”属性的地方,也就是你在哪里初始化这个文件列表的?把那段代码也贴出来检查一下吧

下岗老田 2006-05-06
  • 打赏
  • 举报
回复
路过帮顶

广告

欢迎加入 QQ群大家相互学习,共同提高
名称:网站建设
群号:21637188
hellocoral 2006-05-06
  • 打赏
  • 举报
回复
files是不是本身就是一个session的attribute,你可以试一下。
不会用JSTL标签。。。。
lee821129 2006-05-06
  • 打赏
  • 举报
回复
有人能帮忙么?
jshi123 2006-05-06
  • 打赏
  • 举报
回复
严格说“从jsp向action传对象”并非很专业的提法:
1。jsp经过(访问时动态)编译后,就成为HttpServlet的派生类,亦即普通的Servlet Class
2。服务器将调用HttpServlet.service()方法,生成HTML格式的页面,返回浏览器
所以首先要知道你想要解决的问题是:
1。从jsp对应的Servlet类向另一个ActionServlet类传递对象?还是:
2。从jsp生成的HTML页面向ActionServlet传递对象?
这两种情况,第一种是在服务器端完成的,第二种是从客户端到服务器。(第二种情况没有直接的解决方法)

还是请先把你想要解决的原问题具体说明一下,再看以何种方式解决。
lee821129 2006-05-06
  • 打赏
  • 举报
回复
用application能不能从jsp向action传对象?
lee821129 2006-05-06
  • 打赏
  • 举报
回复
哦,那到底怎么才能从jsp向action传对象?急切的想知道
隐藏字段传List好像不行,试过
jshi123 2006-05-06
  • 打赏
  • 举报
回复
session 没有赋值,二楼已有正解:
public HttpSession session = request.getSession();

同二楼,变量保存在session中并不能做到“从jsp向action传对象”,它只是起到在不同页面间(一次会话中)维持一组公用变量。
lee821129 2006-05-06
  • 打赏
  • 举报
回复
上面是错误信息,at xkjs.action.docmanage.OutputAction.execute(OutputAction.java:70)对应的代码是
List fileList=(List)session.getAttribute("fileList");
lee821129 2006-05-06
  • 打赏
  • 举报
回复
信息: Reloading this Context has started
Unhandled Exception thrown: class java.lang.NullPointerException
Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at xkjs.action.docmanage.OutputAction.execute(OutputAction.java:70)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at xkjs.utils.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
jshi123 2006-05-06
  • 打赏
  • 举报
回复
请贴出运行时错误信息
lee821129 2006-05-06
  • 打赏
  • 举报
回复
???
lee821129 2006-05-06
  • 打赏
  • 举报
回复
用session试过几次,都不行,感觉session声明的地方就不对,session是作为类的属性呢?还是execute方法的参数呢?
lee821129 2006-05-05
  • 打赏
  • 举报
回复
我是先得到数据在JSP显示,然后将显示的数据用Excel导出,需要将List类型对象从JSP传到负责导出的Action中。
我发现有好几个障碍都是因为这个问题,我是初学者,边学边做毕设,应该怎么传,希望大家指教
加载更多回复(1)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧