Primefaces更新<head>页面的内容
primefaces update <head> content of a page
我有一个包含
的页面Create.xhtml<p:calendar .... />
在另一个页面List.xhtml中,不包含任何<p:calendar/>
,
与Primefaces Ajax命令(所以没有任何页面召回/刷新),我调用
<ui:include src="Create.xhtml"/>
(使用<p:ajax />
标签中的update参数)。
显示包含的页面,但<p:calendar/>
不工作,因为,<head>
页面标签没有加载Primefaces日历库。
使<p:calendar/>
正常工作的唯一方法是重新加载/刷新整个页面,但我需要做ajax请求和更新仅包括,由于性能问题。
有办法吗?比如只刷新/更新头部标签?
编辑:Create.xhtml内容在<ui:component>
标签中,List.xhtml内容在<ui:composition>
标签中(使用模板),两个页面都没有任何<html>
, <head>/<h:head>
或<body>/<h:body>
标签。所有这些标记都在模板中,由List.xhtml
感谢Regis Machado提供的解决方案,我解决了这个问题:
在我的模板中,我只是在div面板中插入<h:head>
内容:
<!-- by layout="block" the panelGroup is rendered as a div, omitting as span -->
<h:panelGroup id="headPanel" layout="block">
<h:head>
<!-- Head Content -->
</h:head>
</h:panelGroup>
然后在List.xhtml中:
<p:commandLink value="Create" actionListener="#{myBean.toggleInclude}" update=":includePanel,:headPanel"/>
在commandLink update
中,通过将:includePanel
放在:headPanel
之前,<head>
标签在页面包含之后刷新,以让浏览器渲染器知道要导入的新脚本。
顺便说一句:Regis Machado提供的第二个解决方案也有效,但不易于管理,首先是因为在启动时加载脚本(通过包含一个无效的日历和文件上传)会大大降低应用程序的性能(报告中的问题),如果需要更多的页面,第二使代码维护更加复杂。
非常感谢你的帮助,希望能帮助别人!
尝试使用ajax容器组件,我有与RichFaces 4相同的问题,并将<h:head>
放在<a4j:outputPanel>
内,当我打开一个模态时,我调用outputPanel id来渲染,然后资源更新。如果我看到我的帖子请求有<partial-response><changes><update id="pageHead">
..这不是最好的选择,但现在对我有帮助。
我的代码:<a4j:outputPanel id="pageHead">
<h:head>
<title>Portal - <ui:insert name="title" /></title>
<ui:include src="../../resources-portal/includes/portal/head.xhtml"/>
<ui:insert name="head"/>
</h:head>
</a4j:outputPanel>
& lt;编辑>
如果这不起作用,试着把你需要的组件放在你的根模板中,如果你有一个,但不要渲染它,这对我来说也是有效的。
,
在我的根模板页面,我把
<rich:calendar rendered="false"/>
<rich:fileUpload rendered="false"/>
这将强制jsf识别并加载组件资源,但不呈现组件。
& lt;->对不起我的英语。
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 标记的实时更新,无需加载页面谷歌地图API V3
- 使用mongodb更新中的一个变量
- 访问jsrender模板中的全局javascript变量并更新它
- 如何动态更新head标记中的CSS样式