2008-11-07 3 views

답변

10

리소스 스트림의 작동 방식에 만족하지 않는 한 별도의 페이지 디렉터리를 사용하지 않는 것이 좋습니다.

내가 본 wicket 프로젝트의 대부분은 클래스 디렉토리와 html 파일을 소스 디렉토리에 보관합니다. 나는 그 (것)들을 분리하는 것을 시도하고 그러나 그 때 심상과 그런 같이 다른 자원에 나의 손을 얻는 것이 번거 로움다는 것을 것을을 발견했다; 그래서 나는 패키지 디렉토리에 그 자원들을 넣는 것을 끝내었다. 결국 나는 여러개의 다른 장소에 자원이 있었고, 패키지 디렉토리에 모든 것을 넣는 것보다 더 많은 혼란이 있었다.

즉, 여기에 HTML 템플릿을 별도의 폴더에 넣는 데 사용한 코드가 있습니다. 응용 프로그램 클래스의 Init()에 추가되어야합니다.

IResourceSettings resourceSettings = getResourceSettings(); 
resourceSettings.addResourceFolder("pages"); //the full path to your folder, relative to the context root 
resourceSettings.setResourceStreamLocator((IResourceStreamLocator) new PathStripperLocator()); 

https://cwiki.apache.org/confluence/display/WICKET/Control+where+HTML+files+are+loaded+from에 대한 자습서가 있습니다.

0

이것은 Maven을 사용하여 프로젝트를 관리하는 영역 중 하나입니다. Maven은 클래스 패스에 포함 된 두 개의 위치를 ​​가지고 있기 때문에 논리적으로 Java 소스와 HTML 파일을 분리 할 수 ​​있으며 여전히 동일한 패키지 구조를 유지하게된다. 자바 코드는 src/main/java에 들어가고 HTML은 src/main/resources에 들어갑니다. 코드를 빌드하거나 실행할 때이 두 위치가 클래스 경로에 추가됩니다.

Maven이 사용자에게 적합하지 않은 경우이 아이디어는 사용중인 환경에 적용될 수 있습니다.

3

내가 메이븐을 사용 (사용자가 위의 지적대로) 일반적으로 내 디자이너가 리소스 폴더에서 기본 패키지를 체크 아웃 할 수 있고이 돈으로이 잘 작동 찾을 수 src/main/resources/same/package/name/as/corresponding/java/file

에 내 모든이 .html 페이지를 넣어 ' 모든 .java 파일에 혼란스러워진다. (더 중요한 것은 우연히 파일을 변경하지 않는다는 것이다.)

내가 원한다면 post to the mailing list을 만들었다.

1

내 Java 및 HTML wicket 소스 파일에 별도의 폴더를 사용하지만 개미 빌드 프로세스가 html을 내 웹 응용 프로그램의 클래스 폴더에 복사하므로 설정 위젯 리소스 설정 문제를 피할 수 있습니다.

내 기본 build.properties은


web.root   = ${project.home}/web 
web.java.dir   = ${web.root}/java 
web.html.dir   = ${web.root}/html 

war.root   = ${project.home}/war 
web.inf.dir   = ${war.root}/WEB-INF 
war.lib.dir   = ${web.inf.dir}/lib 
war.classes.dir   = ${web.inf.dir}/classes 

wicket.version   = 1.3.5 
wicket.jar   = ${war.lib.dir}/wicket-${wicket.version}.jar 
wicket-extend.jar  = ${war.lib.dir}/wicket-extensions-${wicket.version}.jar 
wicket-spring.jar  = ${war.lib.dir}/wicket-spring-${wicket.version}.jar 

을 가지고 있으며, 컴파일은/ant 대상을 내가 src/main/resources 폴더 안에 상주하는 HTML 파일을 가진의 팬이 아니에요

<target name="compile-web"> 
    <path id="wicket.build.classpath"> 
     <filelist> 
      <file name="${wicket.jar}"/> 
      <file name="${wicket-extend.jar}"/> 
      <file name="${wicket-spring.jar}"/> 
      <file name="${externaljars.path}/spring/2.5.6/spring.jar"/> 
     </filelist> 
    </path> 

    <javac destdir="${war.classes.dir}" classpathref="wicket.build.classpath" 
     debug="on" srcdir="${web.java.dir}"> 
     <include name="**/*.java"/> 
    </javac> 
</target> 

<target name="assemble-war" depends="compile-web"> 
    <copy todir="${war.classes.dir}" overwrite="true"> 
     <fileset dir="${web.html.dir}"/> 
    </copy> 
    <delete file="${dist.dir}/validationservice.war"/> 
    <war destfile="${dist.dir}/validationservice.war" webxml="${web.inf.dir}/web.xml" basedir="${war.dir}"> 
    </war> 
</target>  
2

과 같이 조립한다. 내가 가장 간단한 방법이 처리 및 버전 관리 및 프로젝트 the Wicket article에 perilandmishap로 연결된 마지막 세트를 사용하는 것입니다 내에서 완전히 분리를 얻을 생각 : 그래서

<project> 
[...] 
<build> 
    <resources> 
    <resource> 
     <filtering>false</filtering> 
     <directory>src/main/html</directory> 
    </resource> 
    </resources> 
[...] 
</build> 
[...] 
</project> 

, 이제 모든 HTML 파일에있을 것입니다 새롭고 분리 된 HTML 폴더이지만 Java 클래스와 병합되었습니다. HTML 폴더 내에서 패키지 이름 지정 체계를 계속 사용해야 함을 기억하십시오. 즉, src/main/html/com/your/package

0

Java와 HTML 파일을 같은 폴더에 넣습니다.그러면 Java 클래스에 해당하는 HTML 파일을 선택하는 것이 훨씬 편하게됩니다. 구성 요소 HTML 파일은 Swing과 같이 Java로 작성된 일종의 UI 설명으로 생각하십시오.