我不知道是否有一個例子,HTML文件和Java文件駐留在不同的文件夾。我應該將html和java文件放在Apache 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文件分開,並使它們保持相同的包結構。 Java代碼進入src/main/java,HTML進入src/main/resources。在構建或運行代碼時,這兩個位置都將添加到類路徑中。
如果Maven不適合你,這個想法可能適用於你正在使用的任何環境。
我使用Maven(如上用戶指出),而且通常把我所有的.html頁面中src/main/resources/same/package/name/as/corresponding/java/file
我覺得這很好地工作作爲我的設計師可以從資源文件夾中檢出基本包和他們不」不要被所有的.java文件弄糊塗(更重要的是,它們不會意外地改變它們!)
如果您有興趣,我發了一個post to the mailing list。
我使用單獨的文件夾爲我的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>
我沒有駐留在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
我會將Java和HTML文件放入同一文件夾中。這將使得選擇與Java類相對應的HTML文件更加舒適。將組件HTML文件想象成一種用Java編寫的UI描述(就像使用Swing一樣)。
- 1. 我的系統和插件文件夾應該放在PyroCMS中?
- 2. 將相同的文件類型放在一個文件夾中
- 3. 我應該將XSLT文件放在我的ASP.NET Web應用程序的App_Data文件夾中嗎?
- 4. 在Java中,我應該創建一個新的包,文件夾或源文件夾嗎?
- 5. 我應該將UT測試的React組件放到與該組件相同的文件中嗎?
- 6. 我的CSS和javascript應該放在自己的文件夾中嗎?
- 7. Git應該只包含主文件夾的文件夾/文件
- 8. 我應該備份「eclipse」文件夾嗎?
- 9. 我應該備份「.svn」文件夾嗎?
- 10. 我可以將同一個java包的類文件拆分爲Tomcat上的jar文件和classes文件夾嗎?
- 11. 我應該將我的Angular文件放在同一個JEE項目中嗎?
- 12. 存放文件和NuGet包的文件夾的根文件夾
- 13. 同一個文件夾和同一個包上的Java文件
- 14. Drupal:我可以手動將文件放入我的「文件」文件夾中嗎?
- 15. 我應該將臨時文件存儲在__pycache__文件夾中嗎?
- 16. 我應該將IBActions放在頭文件中嗎?
- 17. 我應該同時使用頭文件和cpp /源文件嗎?
- 18. 我應該把我的ASP.NET網站放在wwwroot文件夾中嗎?
- 19. 如何將我的index.html放在與github上的其他.html文件相同的文件夾中?
- 20. .htaccess和文件夾保護 - 我應該在另一個文件夾中創建另一個.htacess文件嗎?
- 21. 我應該在我的.py文件中放入ntlk.download()嗎?
- 22. 使該文件夾中的文件夾和子文件夾
- 23. 我們應該將KeyStore和TrustStore指向相同的.jks文件嗎?
- 24. 我應該如何將我的json代碼包含在我的php文件和html文件中
- 25. 構建文件夾應該包含在git倉庫中嗎?
- 26. 我可以把java文件放在pydev項目的文件夾中嗎?
- 27. 不應該將bin文件夾視爲瞬態文件嗎?
- 28. 我應該如何將我的腳本放在我的html文件中?
- 29. 在Laravel中,我應該放置一個非public Data.json文件的文件夾?
- 30. 將具有相同名稱的所有文件放在一個文件夾中