Tapestry 5:如何获取引用页面类?

时间:2012-04-11 11:51:52

标签: tapestry

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

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

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

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

1 个答案:

答案 0 :(得分:4)

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

根据您的具体情况,您可以选择其他解决方案。 没有一个最好的答案。这可能会有所帮助:Passing Data Between Pages

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

您要设置/重置属性的位置还取决于您正在做什么:What is called when 我通常使用onActivate()方法,但是当触发EventLink或Submit时,也会调用此方法两次!