Jsf 基于当前页面包含JS文件
我的主jsf包装页上有以下内容:Jsf 基于当前页面包含JS文件,jsf,richfaces,facelets,Jsf,Richfaces,Facelets,我的主jsf包装页上有以下内容: <head> <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8"/> <title> <ui:insert name="pageTitle" /> </title> <a4j:loadScript src="resource://jquery.js" /> <a4j:lo
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8"/>
<title>
<ui:insert name="pageTitle" />
</title>
<a4j:loadScript src="resource://jquery.js" />
<a4j:loadScript src="resource:///bla/html/js/base.js" />
<a4j:loadScript src="resource:///bla/html/js/common.js" />
<a4j:loadScript src="resource:///bla/html/js/inactivity.js" />
</head>
现在我在网站上有了一个新页面,它需要一些js函数。因此,我创建了一个新的js文件myNewJSFile.js
我只希望它加载,如果一个用户在这个页面上的土地如此明显,我不想把它添加到我的头上面的文件列表。另外,我不想把它放在我的新页面的顶部
我想要的是一个可以根据当前页面定义要加载哪些文件的位置
像这样的东西(伪代码):主jsf包装器:
<head>
<jsIncludes>
</head>
jsIncludes文件:
<a4j:loadScript src="resource://jquery.js" />
<a4j:loadScript src="resource:///bla/html/js/base.js" />
<a4j:loadScript src="resource:///bla/html/js/common.js" />
<a4j:loadScript src="resource:///bla/html/js/inactivity.js" />
<if page == "myNewPage>
<a4j:loadScript src="resource:///bla/html/js/myNewJsFile.js" />
<elfeif ...>
...
</if>
我宁愿在主模板的
中添加另一个
<head>
...
<ui:insert name="headContent" />
</head>
...
然后在页面模板中,只需定义要插入其中的附加脚本
<ui:composition template="main.xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://??? can't tell from top of head :)"
>
<ui:define name="headContent">
<a4j:loadScript src="resource:///bla/html/js/myNewJsFile.js" />
</ui:define>
...
</ui:composition>
...
a4j:loadScript
始终将javascript放在
中,无论您在哪里使用它,都无需执行任何操作。(医生出于某种奇怪的原因没有提到这一点)
因此,要回答您的问题:如果您在需要的页面中使用
,则
将出现在中。如果这是真的,那么这就是解决方法。JSF2.0还提供了
,它也会将它插入
中,而不管您在哪里声明它。是的,我在那里进行了测试,它肯定会使用a4j:loadScript将所有内容放在头部。我同意这个解决方案。谢谢亚当和巴卢斯。