模板和<h:outputscript> </h:outputscript>

时间:2013-07-20 19:07:14

标签: jsf jsf-2

我有一个存储在网络根目录中的JavaScript文件,如

SocialNetworking/web/resources/js/decimal_number_text_field.js

我正在尝试在XHTML页面中导入此js文件,例如

<h:body>
    <ui:composition template="template/Template.xhtml">
        <ui:define name="content">

            <h:outputScript name="../resources/js/decimal_number_text_field.js"/>

        </ui:define>
    </ui:composition>
</h:body>

路径正确但不起作用。


生成的JavaScript代码如下所示。

<script type="text/javascript" src="/SocialNetworking/javax.faces.resource/../resources/js/decimal_number_text_field.js.jsf">
</script>

因此,src属性包含错误的网址。如果此脚本已添加到<h:head>标记内的模板中,则为

<h:outputScript name="js/decimal_number_text_field.js"/>

然后它运作正常。

为什么在将此标记放入覆盖模板的XHTML页面时,它会使用错误的网址?

1 个答案:

答案 0 :(得分:-1)

尝试使用:#{request.contextPath},如下所示。根据您的文件路径,resources包必须位于Web应用程序根目录下。

<script type="text/javascript" src="#{request.contextPath}/resources/js/decimal_number_text_field.js.jsf">
</script>

目录结构:

applicaiton.war
     - resources
       - js
         - decimal_number_text_field.js.jsf