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

发布于 2024-08-04 17:58:20 字数 59 浏览 7 评论 0原文

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

I have one layout component for all my pages, I want to switch this component based on the user desire. I don't want to add a property to each page to return the current layout component.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七色彩虹 2024-08-11 17:58:20

假设您有固定数量的布局,则可以使用块。你的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;

Assuming you have a fixed number of layouts, you can use blocks. Your layout.tml would look something like:

   <t:delegate to="layout"/>

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

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

Your layout.java would have:

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

  @Inject
  private Block _layout1;

  @Inject
  private Block _layout2;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文