gpt4 book ai didi

java - Facelet 组件布局和 javascript

转载 作者:行者123 更新时间:2023-11-29 08:17:51 27 4
gpt4 key购买 nike

我有一个关于在 facelet 组件中放置 javascript 的问题。这更多的是关于最佳实践/风格而不是编程问题,但我觉得我想到的所有解决方案充其量都是黑客攻击。好的,这是我的场景:

我有一个像这样的 facelet 模板(我的脸,还有 apache Trinidad)...

<ui:composition>
<f:view locale="#{myLocale}">
<ui:insert name="messageBundles" /><!--Here we add load bundle tags-->

<tr:document mode="strict" styleClass="coolStyleDoc">

<f:facet name="metaContainer">
<!--This trinidad defined facet is added to HTML head-->
<tr:group> <!-- blah bal my own styles and js common to all -->
<ui:insert name="metaData" />
</tr:group>
</f:facet>
<tr:form usesUpload="#{empty usesUpload ? 'false' : usesUpload}">
<div id="formTemplateHeader">
<ui:insert name="contentHeader" />
</div>
<div id="formTemplateContentContainer">
<div id="formTemplateContent">
<ui:insert name="contentBody" />
</div>
</div>
<div id="formTemplateFooter">
<ui:insert name="contentFooter">
</ui:insert>
</div>
</tr:form>
<!-- etc...--->

现在,想要使用此模板的 facelet 如下所示:

<ui:composition template="/path/to/my/template.jspx">

<ui:define name="bundles">
<custom:loadBundle basename="messagesStuff" var="bundle" />
</ui:define>

<ui:define name="metaData">
<script>
<!-- cool javascript stuff goes here-->
</script>
</ui:define>

<ui:define name="contentHeader">
<!-- MY HEADING!-->
</ui:define>

<ui:define name="contentBody">
<!-- MY Body!-->
</ui:define>

<ui:define name="contentFooter">
<!-- Copyright/footer stuff!-->
</ui:define>
</ui:composition>

所有这些都运行良好,但我遇到的问题是当我想在此页面中使用 facelet 组件时。如果 facelet 组件有自己的 javascript 代码(jQuery 之类的东西),我怎样才能使 javascript 代码包含在生成的 html 的标题部分中?任何帮助,将不胜感激。如果不清楚或有其他问题,请告诉我...提前致谢

最佳答案

假设使用 JSF2 Facelets,您应该能够使用 h:head 做一些事情/h:outputScript标签。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>JSF2</title>
</h:head>
<h:body>
Hello from Facelets
<h:outputScript target="head">
<![CDATA[
document.write("<!-- this will render in the head tag -->");
]]>
</h:outputScript>
</h:body>
</html>

关于java - Facelet 组件布局和 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3048103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com