【发布时间】:2011-09-30 20:24:49
【问题描述】:
我发现 BalusC(urs 的忠实粉丝)的一些帖子和其他关于堆栈溢出的帖子并没有找到解决方案,这似乎是许多人希望能够做到的。
如果我有这样的 facelets/模板结构,左导航 带有驱动在主要内容区域中显示的内容的链接,但没有做 一个完整的页面刷新,我只想更新主区域,我该怎么做?
------------------------------------- |链接1 |显示链接 1 的内容 | |链接2 |单击链接1时| |链接2 |在左侧导航区 | | | | -------------------------------------我看到 primefaces 展示柜在单击左侧菜单项时会刷新整个页面,奇怪的是,richfaces4 展示柜没有,尽管我正在查看代码,但目前还无法理解。有没有一个例子可以告诉我如何做到这一点?
这是我的代码
uiTemplate.xhtml(主模板)
<div>
<div id="left">
<ui:include src="navigationMenu.xhtml"/>
</div>
<div id="center_content" class="center_content">
<ui:insert name="center_content" />
</div>
</div>
然后我的 navigationMenu.xhtml 看起来像
<ui:composition>
<rich:collapsiblePanel header="ClickMe" switchType="client">
<h:link outcome="page1" value="goto page1" /><br />
<h:link outcome="page2" value="goto page2" /><br />
<h:link outcome="page3" value="goto page3" /><br />
</rich:collapsiblePanel>
</ui:composition>
以及将出现在中心内容区域中的页面之一,希望已加载 没有完全刷新所有部分。
我想我会需要一些 f:ajax 标记或对上面的这些链接使用 h:commandLink 但还没有找到一个好的 例子。我看到一堆关于 Mojarra 2.1.x 修复动态包括但 不确定是否与此有关,除非这是完成此任务的唯一方法。
page1.xhtml
<ui:composition template="./uiTemplate.xhtml">
<ui:define name="center_content">
page 1 content
</ui:define>
</ui:composition>
【问题讨论】:
标签: java ajax templates jsf facelets