Config click-app

click-appには、charsetと、localeがあります。
charsetで指定した文字エンコーディングは、

に使用されます。
なので、以前の記述にある、headersでの、指定は特に必要ないようです。
Filterも必要ありません、気をつけなくてはいけないのは、htmファイルのテキストファイルエンコードとあわせる事です。
あとはcacheとかworkディレクトリのせいで文字化けに悩まされないようにちゃんとwork消して、キャッシュ消して実験することです。(私事)

pages

ページは、
pathと、classnameを1:1でマッピングしますが、
ある特定のパッケージが、すべてPageクラスで、なおかつ以下の命名規約に従っている場合、automappingが可能です。

  <pages>
    <page path="index.htm" classname="com.mycorp.page.Home"/>
    <page path="login.htm" classname="com.mycorp.page.Login"/>
  </pages>

のように、com.mycorp.pageパッケージがPageファイルのパッケージであれば、

<pages package="com.mycorp.page" automapping="true"/>

とすることによりAutoMappingがなされます。
また、手動でマッピングする際にも、packageはルートパッケージとして使用できます。

  <pages package="com.mycorp.page">
    <page path="index.htm" classname=" Home"/>
    <page path="login.htm" classname=" Login"/>
  </pages>

automapping

<click-app>
  <pages package="com.mycorp.page">
    <page path="index.htm"                    classname="Home"/>
    <page path="search.htm"                   classname="Search"/>
    <page path="contacts/contacts.htm"        classname="contacts.Contacts"/>
    <page path="security/login.htm"           classname="security.Login"/>
    <page path="security/logout.htm"          classname="security.Logout"/>    
    <page path="security/change-password.htm" classname="security.ChangePassword"/>    
  </pages>
</click-app> 

上記のようなMappingの場合、
以下のようなマッピングで代替が可能です。

<click-app>
  <pages package="com.mycorp.page" automapping="true">
    <page path="index.htm" classname="Home"/>
  </pages>
</click-app> 

対応付けは代替以下のようなルールで行われます。

change-password.htm  =>  ChangePassword
change_password.htm  =>  ChangePassword
changePassword.htm   =>  ChangePassword
ChangePassword.htm   =>  ChangePassword

また、見つからなかった場合、自動的に、Pageをつけたクラスも検索します。

customer.htm         =>  CustomerPage
change-password.htm  =>  ChangePasswordPage

excludes

automappingから除外する指定は以下のようにします。

  <pages package="com.mycorp.page" automapping="true">
    <excludes pattern="/dhtml_/*, /tiny_mce_/*, banner.htm, about.htm"/>
  </pages>

header

ページごとに、headarの指定が可能です。

<page path="login.htm" classname="com.mycorp.page.Login"/>
  <header name="Pragma" value="no-cache"/>
  <header name="Cache-Control" 
          value="no-store, no-cache, must-revalidate, post-check=0, pre-check=0"/>
  <header name="Expires" value="1" type="Date"/>
</page> 

また、後述のとおり、共通でheaderを指定することも出来ます。

headers

以下のように共通したheadarのパラメータを指定することが可能です。

<click-app> 
  <pages>
     ..
  </pages>
  <headers>
    <header name="Pragma" value="no-cache"/>
    <header name="Cache-Control" 
            value="no-store, no-cache, must-revalidate, post-check=0, pre-check=0"/>
    <header name="Expires" value="1" type="Date"/>
  </headers>
</click-app> 

format

オリジナルのFormatクラスを指定できます。
フレームワークは、net.sf.click.util.Formatをデフォルトで指定してあります。
このFormatクラスは、e-mailの形式や、日付、DecimalFormatなどの表示で有用なフォーマット機能を提供します。
詳細はAPI(http://click.sourceforge.net/docs/click-api/net/sf/click/util/Format.html)を参考に。
画面では、以下のような文法で使用できます。
$format.date($deliveryDate, "dd MMM yyyy")

deliveryDateという名前でオブジェクトが取得できることが条件です。
deliveryDateという名前で取得できるオブジェクトを、dd MMM yyyyというフォーマットで変換して表示します。
オリジナルのFormatを登録する場合は、click.xmlに以下のように指定します。

<format classname="com.mycorp.util.CustomFormat"/>

Formatのサブクラスは、Localeを引数に受けるコンストラクタを用意する必要があります。

mode

modeでは、logと、キャッシュに関する設定が可能です。

<mode value=" development" logto=”console”/>

がデフォルトと同等です。

Application mode Page auto loading Velocity caching Message caching Load templates on startup Click logging level Velocity logging level
production No Yes Yes Yes WARN ERROR
profile No Yes Yes Yes INFO ERROR
development Yes No No No INFO ERROR
debug Yes No No No DEBUG ERROR
trace Yes No No No TRACE WARN

対応はそれぞれ上記のようになります。
logtoでservletを指定すると、サーバログとして出力されます。
(Tomcat4.1だと、logs/localhost_log.日付.txtになります。)
指定がconsoleの場合、System.outです。
(Tomcat4.1だと、コンソールです。)

controls

controlを登録することが出来ます、ここで登録したcontrolについては、アプリケーションのスタートアップ時に、それぞれのcontrolのonDeployメソッドが実行されます。

<control classname="com.mycorp.control.CustomField"/>

いまいち用途は不明です。
フレームワーク側だと、Tableがcssの配置を行うために、controlを指定してあるようです。extrasの方だと結構指定してあるようです。

Velocity Properties

velocityに関する設定です。
デフォルトでは以下のような指定になっています。

resource.loader=webapp
webapp.resource.loader.class=org.apache.velocity.tools.view.servlet.WebappLoader
webapp.resource.loader.cache=[true|false] 
#depending on application mode
webapp.resource.loader.modificationCheckInterval=0 
#depending on application mode
velocimacro.library.autoreload=[true|false]
#depending on application mode
velocimacro.library=click/VM_global_library.vm 

コメントにあるように、modeに依存する設定もあります。
独自の設定を追加したり、上書きをしたい場合には、WEB-INF/velocity.propertiesに設定をすれば可能となります。

AutoDeploy

  • click/error.htm - the Page Error Handling template
  • click/control.css - the Controls cascading stylesheet
  • click/control.js - the Controls _JavaScript library
  • click/not-found.htm - the Page Not Found template
  • click/VM_Global_library.vm - an empty Velocity macro library

上記のファイルは自動的にロードされ、配置されます。上書きしたい場合には、該当ファイルを用意すれば、独自設定とすることが出来ます。