论坛首页 Java企业应用论坛

刚在学tapestry,有个疑问

浏览 5530 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-04-29  
传统的基于operation的系统, 前一页面的表单数据可以通过form提交至另一页面;而在tapestry中,表单缺省总是提交到本页,如hangman的游戏例子里,由第一个页面接收本页提交,保存难度选择至visit对象后才activate至Guess页面。 由此给我一个印象: 页面之间的数据传递只能通过visit,也就是session来实现。不知此理解是否正确?还有没有别的更好的方法? 对于一些临时数据来说,根本不需要保存至session的。
   发表时间:2004-04-29  
好像activate another page的同时,参数会自动被forward的?
0 请登录后投票
   发表时间:2004-04-29  
可以把变量设到你的Page Java类的,
Guess guess = (Guess)cycle.getPage("Guess");
guess.setSomeProperty(this.getSomeProperty());
cycle.activate(guess);
0 请登录后投票
   发表时间:2004-04-29  
你每一个page所附带的java类就可以存储数据啊。
就象楼上说得那个样子,先给一个page的类赋值,然后再转到那个页面就可以了。
tapestry的传值方式不是以前的那个“拉”的方式,而是“推”的方式
0 请登录后投票
   发表时间:2004-04-29  
明白了,感谢楼上二位的指点!
0 请登录后投票
   发表时间:2004-05-21  
由上一页的java类来负责填写下一页的参数,是否违背了tapestry数据绑定的初衷。如果能有机制自动将表单参数绑定至下一页就好了!!
0 请登录后投票
   发表时间:2004-06-03  
maxpain 写道
你每一个page所附带的java类就可以存储数据啊。
就象楼上说得那个样子,先给一个page的类赋值,然后再转到那个页面就可以了。
tapestry的传值方式不是以前的那个“拉”的方式,而是“推”的方式


您正好说反了,以前的数据填充方式是“推”的方式,页面的数据有主调页面一股脑的推给被调页面,通常是通过request的SetAttribute方法,这样页面就接受了很多不必要的数据。
而Tapestry则是通过页面的component(jwc)去声明自己需要什么数据,这就是典型的“拉”模式了。

具体的可以参考《程序员》第七期,透明的文章。
0 请登录后投票
   发表时间:2004-06-06  
来这里真实有收获。这个问题我也遇到过。我认为不论是推还是拉主要看数据的使用情况,如果一个数据要在程序的过程中经常使用到我就放到VISIT中如果只是向下一个页面传一个临时的数据就可以使用IRequestCycle中的方法就可以了。
0 请登录后投票
   发表时间:2004-06-06  
其实TAPESTRY中有拉,有推。用CYCLE应该是推,而用OGNL应该是拉了,用什么方式应该取决与程序的需要吧。
0 请登录后投票
论坛首页 Java企业应用版

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