萌えキャラですね、わかります - Configuration

Settings


Wicket は Java ファイルと HTML ファイル (と web.xml) で動作し、設定ファイルが必要ないのも売りの一つですが、ある程度はコード上で設定することになります。といってもめったに変更するものではないのでコード上で設定できた方が都合がいいと思います。

設定は wicket.settings パッケージにある I*****Settings インターフェースを通じて行います。たとえば下記のインターフェースがあります。(一部)
  • IAjaxSettings - AJAX
  • IMarkupSettings - HTML などのマークアップファイル
  • IPageSettings - ページ
  • IRequestCycleSettings - RequestCycle (サーブレットにおける Request + Response のイメージ)

これらは Application のサブクラスの init() 内で get*****Settings() として取得して設定します。
@Override
public void init() {
  getPageSettings().setVersionPagesByDefault(false);
}
詳細は各インタフェースの JavaDoc をご覧ください。

モード


なお開発時と運用時で指定すべきパラメータを一括して変更できる モード が用意されています。
development (開発) モード
  • リソースの動的リロード (IResourceSettings().setResourcePollFrequency())
  • エラーページに詳細な情報を出力 (IExceptionSettings().setUnexpectedExceptionDisplay())
  • マークアップファイルに含まれる wicket タグ (wicket:id など) をそのまま出力 (IMarkupSettings().setStripWicketTags())

など
deployment (運用) モード

development モードの逆の設定になります。

デフォルトは development モードなので、運用時には明示的に設定してやる必要があります。

設定するには Application のサブクラスの init() メソッドで
Application.configure(DEVELOPMENT);
または
Application.configure(DEPLOYMENT);
とします。

また JVM 起動時のオプションにて
-Dwicket.configuration=development
を指定することも可能です。これなら開発環境でテストしたものを運用環境にそのままデプロイできますね。

他にも web.xml にて
<init-param>
  <param-name>configuration</param-name>
  <param-value>deployment</param-value>
</init-param>

<context-param>	
  <param-name>configuration</param-name>
  <param-value>deployment</param-value>
</context-param>
でも指定が可能です。

優先順位は
  1. Application.init()
  2. -Dweblogic.configuration
  3. init-param
  4. context-param

です。