2009-10-27 4 views
7

현재 저는 헤더 (패널), 바닥 글 (패널) 및 상속 된 페이지 내용의 중심 인 BasePage로 구성된 응용 프로그램을 보유하고 있습니다. 내가 겪고있는 문제는 ResourceReferences (아마 이것은 올바른 방법조차도 아니다)이다. 그들은에서 액세스 할 수 있도록Wicket 응용 프로그램에서 전역 적으로 액세스 할 수있는 리소스

  1. JS, 전 세계적으로 사용되는 이미지에 대한 하나의 디렉토리를 가지고, CSS
  2. 등록 (또는하지 않음) 이러한 자원을 : 나는 나 다음을 수행 할 수있는 솔루션을 찾고 있어요 나는 미래
  3. 에서 만들 수 있습니다베이스 페이지에 상속 페이지 또는 형제 자매 페이지는 그 자원 (이미지 예를 들어 URL을)
지금까지

내가 방법을 보여 몇 가지 예를 통해 읽고 CSS와 JS 내에서 액세스 할 수 있도록 허용 구성 요소 또는 응용 프로그램 수준의 리소스를 패키지화하는 방법 sco pe,하지만 그 누구도 도움을 찾고있는 모든 3 가지 문제를 해결하는 것 같지 않습니다. 참조 용으로 전역으로 사용되는 이미지 (아이콘, 로고 등 편집)를 각 구성 요소 패키지에 복사 할 필요가 없으며 유지 관리상의 이유로 이러한 바인딩을 쉽게 참조 할 수 있도록 전역에서 한 곳에서 만들 수 있습니다. 업데이트 중.

답변

7

이것은 Wicket 1.4 이후로 크게 변경되었습니다.

mountSharedResource("/images/submit.jpg", new ResourceReference(MyComponent.class, "foo.jpg").getSharedResourceKey()); 

중복 절대적으로 필요 가 없습니다 :() 메소드 응용 프로그램의 init에서 그들을 마운트, 'Adding Javascript or CSS using a Resource' in Wicket's Wiki

는 이미지 (특히 CSS와 JS 파일에서) 전역으로 액세스 기타 리소스를 확인하려면 참조하십시오 리소스 어떤 식 으로든. 리소스는 구성 요소 자체와 동일한 패키지에있을 필요는 없습니다. 우리의 응용 프로그램에서는 전 세계적으로 사용되는 리소스를 전용 패키지 (예 : com.example.myapp.images)에 넣고 하나의 클래스 (예 : ImagesScope.java)를 JS 및 CSS와 동일하게 넣습니다.

이미지의 경우 코드에서 렌더링 된 참조가 필요 없으므로 ResourceReference은 필요하지 않습니다 (org.apache.wicket.markup.html.image.Image 제외). 그런데 JS 및 CSS를 사용

add(CSSPackageResource.getHeaderContribution(PanelOne.class, "PanelOne.css")); 

, 나는 GitHub의에서 사용할 수있는 little library called wicketstuff-merged-resources의 저자입니다. 이 라이브러리를 사용하면 응용 프로그램의 init()에 수동 마운트를 건너 뛰고 대신 주석을 사용할 수 있습니다.

EDIT : 업데이트 된 링크. 불행하게도 wicketstuff 위키의 문서는 이제 사라진 것 같습니다. 그래도 some articles on our blog이 있습니다.

+0

는 작은 도서관에 대한 링크가 구문이 다를 수 있습니다 일 –

+0

을 doesent : https://cwiki.apache.org/confluence/display/WICKET/Adding+Javascript+or+CSS+using+a+Resource – Sebas

+0

@Sebas 당신에게 ' 맞아. 귀하의 링크로 처음에 메모를 추가했습니다. 응답은 원래 Wicket 1.4 용으로 작성되었습니다. – sfussenegger

관련 문제