如何在jsf 2.0中创建选项卡行为

时间:2011-05-02 11:53:09

标签: web-applications jsf jsf-2 facelets

简单的问题,我无法弄清楚如何以最好的方式做到这一点。 我正在开始一个新项目,所以我仍然有点灵活。

JSF 2.0,欢迎Facelets(虽然我刚开始学习facelets是什么),无论你推荐什么核心技术,我都会考虑。 它也应该适用于IE6(但如果有一个非常适合的解决方案在IE6上不起作用,请告诉我)

如何在webapp中创建类似Tab的行为? (最好的例子是Gmail,我想,侧边栏会更改内容而不刷新页面。)

无需深入细节,我只是在寻找背后的技术,并指向正确的方向。

谢谢!

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

知道我更知识,我使用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