簡體   English   中英

我應該將html和java文件放在Apache Wicket的同一個包(文件夾)中嗎?

[英]Should I put html and java files in the same package (folder) in Apache Wicket?

我想知道是否有一個例子,html文件和java文件駐留在不同的文件夾中。

我不建議使用單獨的頁面目錄,除非您對資源流的工作方式非常熟悉,我不是。

我見過的絕大多數wicket項目都將class和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(作為上面的用戶指出)並且通常將我所有的.html頁面放在src/main/resources/same/package/name/as/corresponding/java/file

我發現這很好用,因為我的設計師可以從資源文件夾中檢出基礎包,並且不會被所有.java文件混淆(更重要的是,它們不會意外地改變它們!)

如果您有興趣,我會在郵件列表上發帖子

我不喜歡讓HTML文件駐留在src/main/resources文件夾中。 我認為處理這個並在版本控制和項目中獲得清晰分離的最簡單方法是使用perilandmishap鏈接的Wicket文章中的最后一個設置:

<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 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>    

這是使用Maven管理項目的一個領域非常好。 由於Maven有兩個包含在類路徑中的位置,因此您可以在邏輯上將Java源文件和HTML文件分開,並使它們保持相同的包結構。 Java代碼進入src / main / java,HTML進入src / main / resources。 構建或運行代碼時,這兩個位置都會添加到類路徑中。

如果Maven不適合您,也許這個想法可以適用於您正在使用的任何環境。

我會將Java和HTML文件放在同一個文件夾中。 這樣可以更輕松地選擇與Java類相對應的HTML文件。 將組件HTML文件視為一種UI描述,否則將用Java編寫(就像使用Swing一樣)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM