簡體   English   中英

Apache Wicket 7-應用程序屬性

[英]Apache Wicket 7 - Application properties

對Wicket來說還很陌生,所以請原諒我的無知。

我有一個Wicket應用程序...從WicketApplication.class開始我有一個WicketApplication.properties文件來加載一些值。 屬性文件位於類文件(相同的軟件包)旁邊。 工作正常,沒有問題。

現在,我想將屬性文件移到應用程序WAR / JAR之外。 將應用程序導出為可在Tomcat上運行的WAR。 我在tomcat根目錄下創建了一個名為properties文件夾,並將WicketApplication.properties移至該目錄。 在WicketApplication.class的init()方法中添加了以下內容...

String realPath = getServletContext().getRealPath("/");
        realPath = realPath.replaceAll("\\\\", "/");
        if (realPath.toUpperCase().indexOf("WEBAPPS") != -1) {
            String newRes = realPath.substring(0,  realPath.toUpperCase().indexOf("WEBAPPS") -1);
            System.out.println (newRes + "/properties");
            getResourceSettings().getResourceFinders().add(new Path( newRes + "/properties"));
        }

我拋出異常。

如何“外部化”屬性文件?

另外,如果可以更進一步,我如何將屬性文件名映射到類名..it, myapplication.properties -> WicketApplication.class

提前致謝。

您需要使用application.getResourceSettings().getStringResourceLoaders().add(...)添加新的IStringResourceLoader。 請參閱https://github.com/apache/wicket/blob/515e2be2a5301f5caf7b1baee4a593d21c20e275/wicket-core/src/main/java/org/apache/wicket/settings/ResourceSettings.java#L220-L224

當您要為HTML文件添加自定義位置時,應使用IResourceFinder

無法將myapplication.properties映射到WicketApplication.class 通過添加一個額外的IStringResourceLoader,您只需告訴Wicket在另一個地方搜索即可。

暫無
暫無

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

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