在jsf adf页面中包含一个js文件

时间:2012-02-24 05:29:04

标签: jsf oracle-adf

我想在jsf页面中包含一个js文件。我尝试了通常的做法,但它没有用。

<script language="Javascript" type="text/javascript" src="js/alertMessages.js"></script>

我也尝试过以下adf组件:但我的adf lib中没有af:resource组件。

<af:document>
  <f:facet name="metaContainer">
    <af:resource source="/mySourceDirectory"/>
  </facet>
  <af:form></af:form>
</af:document>

请告诉我如何在我的页面中包含js文件。

...谢谢

2 个答案:

答案 0 :(得分:1)

相对资源网址(<script><link><img><a>元素的网址,这些网址不以方案http://开头或斜杠{{1相对于当前请求URL(如浏览器地址栏中所示)。

因此,如果你打算通过

打开页面
  

http://localhost:8080/contextname/somefolder/page.jsf

然后您实际上将从

下载脚本文件
  

http://localhost:8080/contextname/somefolder/js/alertMessages.js

而不是

  

http://localhost:8080/contextname/js/alertMessages.js

您希望相对于域根目录建立URL。所以必须成为/。您可以使用/contextname/js/alertMessages.js动态内联上下文路径:

${pageContext.request.contextPath}

请注意,<script type="text/javascript" src="${pageContext.request.contextPath}/js/alertMessages.js"></script> 属性是多余的。另请注意,对于JSF 2.x,有一些标签可以隐式地使用language

另见:

答案 1 :(得分:1)

您应该使用af:resource标记在ADF Faces页面中包含javascript。 http://docs.oracle.com/cd/E21043_01/apirefs.1111/e12419/tagdoc/af_resource.html