如何在运行时更改Tapestry 5页面中的布局组件?

时间:2009-09-12 02:49:42

标签: tapestry

我的所有页面都有一个布局组件,我想根据用户需求切换此组件。我不想为每个页面添加属性来返回当前的布局组件。

1 个答案:

答案 0 :(得分:3)

假设您有一定数量的布局,您可以使用块。你的layout.tml看起来像:

   <t:delegate to="layout"/>

   <t:block id="layout1">
     <body>...</body>
   </t:block>

   <t:block id="layout2">
     <body>...</body>
   </t:block>

你的layout.java会有:

  public Object getLayout() {
    if (...) {
      return _layout1;
    } else {
      return _layout2;
    }
  }

  @Inject
  private Block _layout1;

  @Inject
  private Block _layout2;