2014-05-16 2 views
0

제목은 매우 자발적입니다. 그러나 그럼에도 불구하고 여기에 있습니다. 필자는 시스템에서 javascript 파일로 여러 스크립트 태그를 추가하려는 Panel을 보유하고 있습니다.Wicket 6 : 스크립트 태그로 머리를 감싸는 자바 스크립트 파일을 포함합니다.

다음을 시도했지만 스크립트 태그가 아직 표시되지 않았습니다. 프로젝트의 정확한 파일 계층 내가 정확하게 문제가 될 수있는 것을 말할 수 없다,하지만 난 당신에게 약간 포인터를 줄 수를 모른 채

@Override 
public void renderHead(IHeaderResponse response) { 
    super.renderHead(response); 
    for(String path : arrayOfJsFiles){ 
    response.render(JavaScriptHeaderItem 
     .forReference(new PackageResourceReference(getClass(), 
       path))); 
    } 

}

+0

자바 스크립트 파일은 어디에 있습니까? – WiseTree

+0

@DomasPoliakas는 JS 폴더 아래에 로컬로 있습니다. – user981916

+0

webapp/js 폴더를 의미합니까? – WiseTree

답변

1

.

첫째, 올바르게 이해하면 자바 스크립트 파일이 제공된 코드가 실행되는 클래스와 동일한 패키지에 있지 않습니다. 그게 바로 PackageResourceReference이 기대하는 것이 아닙니다. 패키지 리소스는 패키지 파일에있는 리소스입니다. 그래서 com/custom/MyClass.java 클래스가 있다면 패키지 리소스도 같은 폴더에 있어야합니다. 예 : com/custom/some-javascript.js

따라서 생성자에서 PackageResourceReference#PackageResourceReference(Class, String) 2 가지 : 범위이름은입니다. 범위는 리소스와 동일한 패키지에있는 클래스이며 이름은 파일 경로가 아니라 파일 이름입니다. 경로는 범위로 정의됩니다.

나는 그것이 가장 좋은 방법입니다 있는지 확실하지 않습니다,하지만 난 글로벌 리소스를 사용할 필요가있을 때, 나는 실제로 이제까지 ResourceReference를 구성, 대신 JavaScriptHeaderItem.forUrl("./js/some-javascript.js")를 사용하고 같은 자원 (./js를 렌더링하지 않습니다 /는 webapp/js/폴더입니다).

그러나 리소스를 처리하는 올바른 방법인지는 확실하지 않습니다. 나는 아주 잘 자원을 커버하고 당신의 문제에 당신을 도울 수 있던대로 this 독서를 적극 추천한다.

관련 문제