【问题标题】:How to create the tabs behaviour in jsf 2.0如何在 jsf 2.0 中创建选项卡行为
【发布时间】:2011-05-02 11:53:09
【问题描述】:

一个简单的问题,到目前为止,我无法弄清楚如何以最好的方式做到这一点。 我正在开始一个新项目,所以我还是比较灵活的。

JSF 2.0,欢迎使用 Facelets(虽然我刚刚开始了解什么是 facelets),无论您推荐什么核心技术,我都会考虑。 它也应该在 IE6 上工作(但如果有一个在 IE6 上不工作的真正足够的解决方案,请告诉我)

如何在 web 应用中创建类似标签的行为? (我猜最好的例子是 Gmail,侧边栏会在不刷新页面的情况下更改内容)。

无需赘述,我只是在寻找它背后的技术并指出正确的方向。

谢谢!

【问题讨论】:

    标签: web-applications jsf jsf-2 facelets


    【解决方案1】:

    如果您想“自己动手”,您可以使用f:ajax 标签。这需要三个参数:

    • 事件:触发 ajax 更新的原因。在您的情况下,这将是当您单击某些内容时,例如带有标签名称的锚点。
    • 监听器:当事件发生时对托管 bean 执行操作。您的操作将根据用户单击的内容确定当前正在显示哪个选项卡。您的 UI 将使用该信息来确定要呈现的内容。
    • render:将重新显示的组件的 ID。这应该是选项卡控件本身,可以是页面上的 panelGroup 或 panelGrid。这决定了页面的哪一部分将被重绘。您将在此处拥有所有选项卡的 UI 逻辑,但将它们配置为仅在它们是当前选择时才呈现。

    Richfaces、Primefaces 和 Icefaces 组件库都有您可以使用的解决方案。

    【讨论】:

    • 那么解决方案将呈现一个组件/面板并隐藏所有其他组件/面板? (按键替换的实际内容)
    • 这将是一种简单的方法来做你所要求的,是的。
    【解决方案2】:

    Primefaces Tabview component 怎么样。 Primefaces 是一个基于 JSF 2.0 的组件库。 (从未在 IE6 上尝试过。我建议在 IE6 中尝试给定的示例)

    【讨论】:

    • 谢谢。我正在寻找“核心”技术。意思是,我想避免使用执行此操作的特定组件。
    • 什么是“核心”技术? primefaces(或richfaces、icefaces)的组件建立在jsf、javascript和backing bean之上。
    【解决方案3】:

    知道我更博学我使用带有 AJAX 的 jQuery BBQ 插件。

    使用此链接查看完整解决方案:

    Updating the url bar from the webapp to represent the current state

    IE6/7 Back/Forward button don't change window.location.hash

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多