2008-11-07 14 views

回答

10

我不建議使用單獨的頁面目錄,除非您對資源流的工作方式感到滿意,而我並非如此。

我見過的絕大多數檢票項目都將類和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文件分開,並使它們保持相同的包結構。 Java代碼進入src/main/java,HTML進入src/main/resources。在構建或運行代碼時,這兩個位置都將添加到類路徑中。

如果Maven不適合你,這個想法可能適用於你正在使用的任何環境。

3

我使用Maven(如上用戶指出),而且通常把我所有的.html頁面中src/main/resources/same/package/name/as/corresponding/java/file

我覺得這很好地工作作爲我的設計師可以從資源文件夾中檢出基本包和他們不」不要被所有的.java文件弄糊塗(更重要的是,它們不會意外地改變它們!)

如果您有興趣,我發了一個post to the mailing list

1

我使用單獨的文件夾爲我的java和html wicket源文件,但我的ant構建過程然後將html複製到我的web應用程序的classes文件夾,所以我避免了必須設置wicket資源設置的問題。

我的基本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目標看起來像

<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

我沒有駐留在src/main/resources文件夾中的HTML文件的粉絲。我認爲,最簡單的方法來處理這個問題,並在版本控制和內您的項目是使用最後一集了在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文件想象成一種用Java編寫的UI描述(就像使用Swing一樣)。

相關問題