【发布时间】:2012-05-17 05:20:31
【问题描述】:
在使用这样的 Facelet 模板的 Facelet 页面中:
<h:head>
<h:outputScript name="custom.js" library="javascript" target="head"/>
</h:head>
<ui:composition template="../../WEB-INF/Template.xhtml">
</ui:composition>
如何包含自定义 javascript?在上面的代码中,我的 custom.js 被忽略了,因为 ui:composition facelet 标记。
我不想通过将我的 javascript 放入其中来弄乱我的页面,因此我将其外部化到我的资源中 文件夹。
但是我该如何实现我的目标呢?
更新:
我基本上有这个按钮,我想在我的 primefaces 按钮的 oncomplete 事件上添加自定义 javascript。
<p:commandButton value="Save"
actionListener="#{memberManagedBean.save}"
oncomplete="handleSaveNewMember(xhr, status, args)"
update=":memberListForm:membersTable"
process="@form" />
但我没有将代码放入其中,而是将其外部化到我的 custom.js
function handleSaveNewMember(xhr, status, args) {
/*More Code*/
addMemberDlg.hide();
}
但是查看为我的按钮生成的 HTML,我的自定义 javascript 代码不包括在内,只添加了函数名称。
<button id="createupdateform:j_idt18" oncomplete:function(xhr, status, args){handleSaveNewMember(xhr, status, args);}});return false;" type="submit"><span class="ui-button-text">Save</span></button>
你认为为什么会这样?
更新 2
您应该在 ui:define facelet 标记内插入脚本,而不是在 ui:composition 内。
<ui:composition template="../../WEB-INF/Template.xhtml">
<ui:define name="content">
<h:outputScript name="showmembers.js" library="javascript" target="head"/>
</ui:define>
</ui:composition>
【问题讨论】:
标签: jsf-2 primefaces