论坛首页 Java企业应用论坛

讨论:struts中表示层所需要显示的数据的获取位置

浏览 9319 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-05-18  
不知大家在struts开发过程中是否遇到这样的问题:

struts表示层jsp所需要的数据,在哪个位置获得比较合理?

struts官方的例子中都是在action中setAttribute,然后页面自然也用它提供的
taglib来显示,但是这样会遇到两个问题:
1,当诸多action将forward到同一个页面的时候,都将重复的大量的代码来,
很多action中都会出现相同的setAttribute语句。

-这个问题可以忍受的,通过提取公因数,合并action,来改善。但是有迁就struts之嫌。

2,第二个问题,当我需要的forward的页面,需要setRedirect(true)的时
候,那么request的attriute中的属性将清空,导致被迫在jsp中获取要显示的数据。--有很多时候需要redirect为true的,诸如forward的页面从缓存获取,不刷新之类,等等一系列的情况下。

-这样做直接导致了,struts的taglib成为鸡肋,如果在jsp页面中获得后,setAttribute然后,以便于taglib去getAttribute,真是过于多此一举。


请问各位,如何处理这样的问题?
   发表时间:2004-05-18  
第二种可以考虑将数据放在session中
0 请登录后投票
   发表时间:2004-05-19  
--如果使用session,那么面临着使用完后session清空的问题。
作为一种普遍问题的解决方法,当用户量增多的时候,ssession会变得非常大,这又是令人不快的。
0 请登录后投票
   发表时间:2004-05-19  
我觉得session是可行的办法。tapestry应该就是把组件保存在session吧, 可以学习struts的actionform,增加一个reset方法
0 请登录后投票
   发表时间:2004-05-19  
冰云 写道
我觉得session是可行的办法。tapestry应该就是把组件保存在session吧, 可以学习struts的actionform,增加一个reset方法


我倾向于在页面获得页面所需显示的数据,而非在action中setAttribute。
随之也抛弃部分struts的taglib。

如果放在session中,那么如何管理session中那些仅仅是只是某些页面,某些
scope才用到的compoent对象,有什么比较好的方法来管理他们吗?
能确报运行一段时间,session中不存在一些垃圾对象吗?
当异常发生的时候,reset的管理能力也是很有限的。

如果在页面获得数据,那么这些问题都将不存在,但是却违背了struts的初衷。
0 请登录后投票
   发表时间:2004-05-19  
jbaggio 写道


我倾向于在页面获得页面所需显示的数据,而非在action中setAttribute。
随之也抛弃部分struts的taglib。



这个我现在是自己写taglib调用service来获得数据
效果还不错

jbaggio 写道

如果放在session中,那么如何管理session中那些仅仅是只是某些页面,某些
scope才用到的compoent对象,有什么比较好的方法来管理他们吗?
能确报运行一段时间,session中不存在一些垃圾对象吗?
当异常发生的时候,reset的管理能力也是很有限的。


session能存在多少垃圾对象呢?
如果每次都用同样的key,那么上次的key就被抛弃了吧
我想,在session被destory的时候这些对象就都可以被回收了
感觉应该不是大问题
0 请登录后投票
   发表时间:2004-05-19  
嗯,谢谢:)

我会试一下。
0 请登录后投票
   发表时间:2004-05-19  
jbaggio 写道
嗯,谢谢:)

我会试一下。


跟我客气什么!~~
0 请登录后投票
   发表时间:2004-05-20  
冰云 写道
jbaggio 写道
嗯,谢谢:)

我会试一下。


跟我客气什么!~~


好!
那就冰大侠,大恩不言谢。
后会有期:)
0 请登录后投票
   发表时间:2004-05-21  
反正我的感觉是能不使用session就不使用,不是必须就不要用它,规范中是这么要求的,难道你不要考虑大访问量时服务器的负担么?
  不过想想,struts中jsp中能使用的无非就时request ,session,servletcontext级,而request.settattribute()也是struts中建议使用最常规方式,我想还是别白费心思了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics