javascript - Javascript 未在包含的 Facelets 页面中被调用

标签 javascript jsf facelets jsf-1.2

我在一个(主)Facelets 页面中有以下代码,

<h:panelGroup rendered="true">  
            <ui:insert>
                <ui:include src="/includeSecondPage.xhtml" />
           </ui:insert>
</h:panelGroup>

以下是includeSecondPage.xhtml页面中的内容,

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core">
<head>
<script type="text/javascript">
/* <![CDATA[ */

   function myScript () 
   {
        alert("Inside myScript");
   }

   myScript();

    /* ]]> */
</script>
</head>
<f:view>
<body>

<h:form id="secondForm">
<ui:composition>

<h:outputText value="This panel is called using Component Control Component"></h:outputText>

</ui:composition>
</h:form>
</body>
</f:view>
</html>

我的 Java 脚本没有在我的 includeSecondPage.xhtml 中被调用。我的第一(主)页面(包括第二页)中没有弹出警报框。并且 Java Script 控制台中没有 Java Script 错误。

最佳答案

任何外部 <ui:composition>在包含期间被丢弃。 <ui:composition> 之外的任何内容仅由诸如 Dreamweaver 之类的可视化编辑器使用,并且实际上应该仅以这种方式表示“填充”内容,以便包含内容能够“正确”直观地表示。如果您通过右键单击“在浏览器中查看源代码”仔细查看了 JSF 生成的 HTML 输出,您会发现这些部分在 HTML 输出中完全不存在。

将包含内容放入<ui:composition>内。如果您不使用可视化编辑器,那么也只需删除 <ui:composition> 之外的任何内容即可。您的整个包含文件如下所示:

<ui:composition
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <script type="text/javascript">
        // <![CDATA[

        function myScript () {
            alert("Inside myScript");
        }

        myScript();

        // ]]>
    </script>

    <h:outputText value="This panel is called using Component Control Component" />
</ui:composition>

另请参阅:

关于javascript - Javascript 未在包含的 Facelets 页面中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14872822/

相关文章:

java - JSF : able to do mass update but unable to update a single row in a datatable

jsf - 将操作方法​​名称作为参数传递给 facelets 组件

java - Facelet VDL 官方规范在哪里?

JavaScript:函数作为参数传递给 if block

javascript - 动画化迭代应用的宽度变化

javascript - 纯粹使用 javascript 的 div 标签的拖放功能

jsf - 托管 Bean 作为 Facelet 参数让复合组件阻止解析

javascript - Bootstrap 模态中的 Sweet Alert

jsf - 如何在我的 JSF 项目中进行 Selenium 测试?

ajax - p :fileUpload calls bean constructor for each file