我想从Action子类向JSP页面发送大量数据。
我的问题:
在Struts中将数据从Action子类发送到JSP页面的最有效方法是什么?
我可以面对哪些问题?
如果我使用ArrayList
在请求上放了两个大的request.setAttribute()
并在JSP页面上读取该请求怎么办?
答案 0 :(得分:1)
当您在Struts 1/2中将大量数据从操作返回到JSP时,您不会通过网络发送它。它不是重定向,而是转发。这意味着从操作返回的数据将在JSP中通过引用提供。不涉及复制和网络传输。当然,如果使用JSP和您提供的模型渲染大量内容,则需要花费大量时间将其发送回客户端。但是,在处理一个请求期间,操作和视图(JSP)本身之间的通信发生在内存中。没什么好担心的。
我认为这适用于将模型从控制器返回到视图的每个框架 - 没有被复制,只是引用传递。使用request.setAttribute
也不会复制任何内容,也不会涉及克隆。
警告:这不适用于会话属性,这些会话属性在请求之间是持久的,可能会被序列化和复制等。但是对于大对象,请求属性很好,只要你真的需要它们(?)