문제

개찰구의 디렉토리 구조를 알아 내려고 노력하고 있습니다. 나는 그것을 전혀 얻지 못한다! 이미지/logo.gif 또는 그와 비슷한 이미지를로드하고 싶다고 가정 해 봅시다. 이미지 폴더를 어디에 배치해야합니까? 이걸 도와주세요! ;)

도움이 되었습니까?

해결책

개찰구는 OOP 패러다임을 통해 전체 웹 페이지를 생각하고 회수 처리를 포함합니다.

그래서, 당신의 경우 SomePage extends WebPage 패키지에 있습니다 myprogram.view.pages, 이미지 등을 추가해야합니다 myprogram.view.pages.assets (또는 유사하게 명명 된 논리 패키지) 그런 다음 전화하여 일부 페이지 소스에 이미지를 추가하십시오.

add(new Image("id", new ResourceReference(this.getClass(), "assets/logo.gif")));

이렇게하면 모든 페이지, 구성 요소 및 관련 자산이 합리적인 구조로 제공됩니다 (사람들이 여전히 모든 CSS 스타일링을 하나의 거대한 스타일 시트에 넣었다는 것이 유일한 사람입니까?) 다른 모든 것과 분리됩니다.

그리고 이제 고급 부품 : 페이지의 정적 요소의 경우 위의 작업을 수행하고 싶지 않을 가능성이 높으며 분명히 헤비급 방법이므로 디자이너가 사용할 로고 이미지를 결정할 수 있도록 할 수 있습니다. 이런 종류의 경우 사용하십시오

<wicket:link>
    <img src="images/logo.gif" />
</wicket:link>

마크 업 파일에서 똑바로. 그만큼 개찰구 : 링크 태그는 이미지 리소스를 올바른 파일에 자동으로 연결합니다 (경로는 SomePage.class!) 그리고조차도 자동으로 캐싱을 처리합니다.

다른 팁

프로젝트의 루트에서 직접 이미지 폴더를 만들 수 있습니다. 즉, 전쟁 아카이브에는 Meta-Inf, Web-Inf, 루트 레벨의 이미지가 포함되어야합니다. 또는 Servlet 컨테이너의 웹 앱 폴더의 루트. 그런 다음 HTML처럼 참조하십시오

<img src="images/pic1.jpg"/>

Java 코드에서 이미지를 참조하는 경우 서블릿 경로와 관련이 있어야합니다. 서틀 컨텍스트를 통해 획득 할 수 있습니다

class MyPage extends WebPage {
  public MyPage() { 
     final ServletContext ctx = ((WebApplication) getApplication()).getServletContext();
     File imgFile = new File(ctx.getRealPath("/images/pic1.jpg"));
   }
}

NetBeans에서는 소스 패키지 아래에 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top