我想这个标题是非常自我描述性的,但在这里它仍然存在:我有一个Panel,我想用我的系统中的javascript文件添加多个脚本标签。
我尝试了以下内容,但脚本标签仍未显示。
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
for(String path : arrayOfJsFiles){
response.render(JavaScriptHeaderItem
.forReference(new PackageResourceReference(getClass(),
path)));
}
}
答案 0 :(得分:1)
在不知道项目的确切文件层次结构的情况下,我无法确定问题究竟是什么,但我可以给你一些指示。
首先,如果我理解正确,javascript文件与您提供的代码所在的类不在同一个包中。这不是PackageResourceReference
所期望的。 包资源是该文件的包中的资源;所以如果你有一个com / custom / MyClass.java类,你的包资源也应该位于同一个文件夹中,即com / custom / some-javascript.js
因此,在构造函数PackageResourceReference#PackageResourceReference(Class, String)
中,您提供了两件事:范围和名称。范围是与资源位于同一个包中的类,名称只是文件的名称,而不是文件的路径;路径由范围定义。
我不确定这是否是最好的方法,但是当我需要使用全局资源时,我实际上并没有构建ResourceReference
,而是使用
JavaScriptHeaderItem.forUrl("./js/some-javascript.js")
等呈现资源(./js/是webapp / js /文件夹)。
但是,我不确定这是否是处理资源的正确方法。我强烈建议您阅读this,因为它可以很好地涵盖资源并可以帮助您解决问题。