论坛首页 Java企业应用论坛

webwork如何保持多个画面处理时候的数据

浏览 4179 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-03-05  
本人接触WW不久,按照我的理解,WW的Action是ThreadLocal的,也就是说一次请求后这个实例就废弃了.如果要将数据保持到下一个Action,就要将这些值包含在下一次请求的中,比如使用WW的UITag或者HTML的提交元素的名字命名符合OGNL语法.WW会自动把值赋到相应的Action的成员变量中.
在做下面一个WEB常用的输入模式时
1.查询列表(条件输入)->2.选择后Edit->3.确认->4.查询列表
遇到了点问题:
在4返回时我希望保持1输入的值,如果不用ServletSession,也不在3中隐藏hidden的话,还有什么方法?
   发表时间:2005-03-05  
使用ww自带的jsp tag, 你的action里面只要有相应的getter/setter,什么也不用做,input的value就能够自动保持

如果你讨厌jsp的话, 用其他的模板语言做一个macro,通过action的getter获得就可以了。
0 请登录后投票
   发表时间:2005-03-05  
我不是讨厌WW的UITag,虽然不好用,但是在Select等类型时比直接写html方便的.
我的问题是否一定需要在第3个确认画面里隐藏Hidden来保持第1个画面中输入条件才能实现返回查询列表时显示前一次输入的条件.
不用Session,有没有更好的方法?
0 请登录后投票
   发表时间:2005-03-05  
你如果不用hidden,在你的“4.查询列表 ”时,输入的查询数据就会丢失。所以,最常用的办法就是放在"hidden"里面或者放置在URL中。要么只能放到session里面。
在JSP/Servlet中保持你的会话不外乎是三种:request、session、application。
0 请登录后投票
   发表时间:2005-03-05  
多谢了!这样的话是否可以理解为在这种场合下,WW还是不得不和Web容器有一定的耦合的?
还有一个问题,使用ServletActionContext来处理session后,是否有清理session中的实例的比较好的方法.比如是否有根据一定规则清理session的拦截器?
0 请登录后投票
   发表时间:2005-03-06  
jwd 写道
我不是讨厌WW的UITag,虽然不好用,但是在Select等类型时比直接写html方便的.
我的问题是否一定需要在第3个确认画面里隐藏Hidden来保持第1个画面中输入条件才能实现返回查询列表时显示前一次输入的条件.
不用Session,有没有更好的方法?

这个很简单: 不需要Session,也不需要Hidden field, 只要在第3个画面把第一个画面的查询表单include进来,放在一个Hidden的Div里面,这样就OK了.
0 请登录后投票
论坛首页 Java企业应用版

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