html 파일과 java 파일이 다른 폴더에있는 예제가 있는지 궁금합니다.Apache Wicket의 동일한 패키지 (폴더)에 html과 java 파일을 넣어야합니까?
답변
리소스 스트림의 작동 방식에 만족하지 않는 한 별도의 페이지 디렉터리를 사용하지 않는 것이 좋습니다.
내가 본 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에 대한 자습서가 있습니다.
이것은 Maven을 사용하여 프로젝트를 관리하는 영역 중 하나입니다. Maven은 클래스 패스에 포함 된 두 개의 위치를 가지고 있기 때문에 논리적으로 Java 소스와 HTML 파일을 분리 할 수 있으며 여전히 동일한 패키지 구조를 유지하게된다. 자바 코드는 src/main/java에 들어가고 HTML은 src/main/resources에 들어갑니다. 코드를 빌드하거나 실행할 때이 두 위치가 클래스 경로에 추가됩니다.
Maven이 사용자에게 적합하지 않은 경우이 아이디어는 사용중인 환경에 적용될 수 있습니다.
내가 메이븐을 사용 (사용자가 위의 지적대로) 일반적으로 내 디자이너가 리소스 폴더에서 기본 패키지를 체크 아웃 할 수 있고이 돈으로이 잘 작동 찾을 수 src/main/resources/same/package/name/as/corresponding/java/file
에 내 모든이 .html 페이지를 넣어 ' 모든 .java 파일에 혼란스러워진다. (더 중요한 것은 우연히 파일을 변경하지 않는다는 것이다.)
내가 원한다면 post to the mailing list을 만들었다.
내 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>
과 같이 조립한다. 내가 가장 간단한 방법이 처리 및 버전 관리 및 프로젝트 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
Java와 HTML 파일을 같은 폴더에 넣습니다.그러면 Java 클래스에 해당하는 HTML 파일을 선택하는 것이 훨씬 편하게됩니다. 구성 요소 HTML 파일은 Swing과 같이 Java로 작성된 일종의 UI 설명으로 생각하십시오.