3

有没有办法获取生成当前页面请求的前一页的 Tapestry 页面类或名称?

@Persist在 Tapestry 页面中有一个必须重置的属性,除非引用页面是当前页面或一组预定义的其他 Tapestry 页面。

Tapestry 是否提供了一种简洁的方式来访问“引荐来源”页面的类或名称,而无需手动查看 Request 对象?

并且鉴于我设法以某种方式获取引用页面的类/名称,有条件地重置@Persist-ed 属性的最佳位置在哪里?SetupRender()还是OnActivate()

4

1 回答 1

4

我认为没有预定义的方法来获取呈现链接的页面。您可以轻松识别的唯一一个是页面何时调用自身(例如因为事件链接,它触发事件然后转发到页面本身)。

根据您的情况,您可以选择不同的解决方案。没有单一的最佳答案。这可能会有所帮助:在页面之间传递数据

  • 存储最后一页的 @SessionState 对象很容易,但如果用户打开多个窗口/选项卡或在浏览器中使用前进/后退,它可能会搞砸。
  • 包含页面名称的激活上下文也很容易,但用户可能会弄​​乱参数。

.

你想在哪里设置/重置你的属性也取决于你在做什么: 我通常使用 onActivate() 方法时会调用什么,但是当 EventLink 或 Submit 被触发时,这个方法也会被调用两次!

于 2012-04-11T21:59:00.140 回答