Click

Config Application Configuration

簡単なclick.xmlは以下のようになります。 <click-app charset="UTF-8" locale="de"> <pages> <page path="index.htm" classname="com.mycorp.page.Home"/> <page path="login.htm" classname="com.mycorp.page.Login"/> <page path="logout.htm" classname="com.mycorp.page.Logout"/> </pages> <headers> </headers></click-app>

Config Servlet Configuration

まずは、ClickServletの設定を必要とします。 web.xml <web-app> <servlet> <servlet-name>click-servlet</servlet-name> <servlet-class>net.sf.click.ClickServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>click-servlet</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping></web-app>

Configuration

設定ファイルは、 WEB-INFの下に、web.xml、click.xmlが必要となります。 また、オプションとして、velocity.propertiesを含むことが出来ます。

Control 参考すべき箇所

FromのLayoutやら、VOへのcopyやら便利メソッドが多いので、Formクラスのドキュメントは一読 例) form.setErrorsPosition(Form.POSITION_TOP); でエラー表示がFormの上になる。 nputVO inputVO = new InputVO(); form.copyTo(inputVO); でVOに値がcopyされ…

Control Propertyの優先度

Page Scope Messages > Global Page Scope Messages > Controll Scope Messages > Global Controll Scope Messages となる。

Control Message Properties

Controllにも個別のプロパティとGlobalなプロパティがあります。 Controll Scope Messages com.mycorp.control.CustomTextFieldが存在した場合、リソースは以下にある必要がある。 /com/mycorp/control/CustomTextField.properties Global Control Scope Mes…

Control 例

以下のような実装をしたとします。 public HomePage() { ActionButton actionButton = new ActionButton("button","buttonLabel"); actionButton.setListener(this, "onButtonClick"); addControl(actionButton); } public boolean onButtonClick() { System…

Control

画面側で発生したイベントをサーバ側で取得する仕組みです。 以下のようなシーケンス図(http://click.sourceforge.net/images/control-post-sequence-diagram.png) Controlは以下のインターフェースを実装する(http://click.sourceforge.net/images/contr…

Page Message Properties

Pageクラスは、messagesというプロパティを持っていて、これまた、画面に表示することが出来る。 以下は、titleというプロパティを表示する例 $messages.title このmessagesは以下の場所からLoadされる。 PageScopeMessages この場合、Pageクラスがcom.mycor…

Page エラーハンドリング

例外のハンドリングについては、 デフォルトで用意されている。 実際には定義されてはいないが、以下の指定がされているのと同等である。 <page path="click/error.htm" classname="net.sf.click.util.ErrorPage"/>独自実装がしたい場合には、clickサブディレクトリの下に、error.htmを作成し、 <page path="click/error.htm" classname="com.mycorp.page.ErrorPage"/>のように、独自の例外Pageを作成する。</page></page>…

Page PageTemplating

StrutsのtilesのようにTemplateを使用することが出来る。 テンプレートPageの作成 まずは、templateとなるクラスを、Pageを継承して作成 public class BorderedPage extends Page { /** * @see Page#getTemplate() */ public String getTemplate() { return …

Page 画面遷移

forwardの場合 _/** * @see Page#onPost() */ public void onPost() { // Process form post .. setForward("index.htm"); } このようにすると、遷移先の新しいPageインスタンスを使用する。遷移先のPageのコントロールは実行されない。(?) 値の引継ぎ 方…

Page の method

onInit() onSecurityCheck() onGet() onPost() onRender() onDestroy() 以下のようなシーケンス図(http://click.sourceforge.net/images/get-sequence-diagram.png) onInit() FrameWorkがいろいろした後に初期化処理として利用 onSecurityCheck() 認証など…

Page セキュリティ

onSecurityCheckメソッドが用意され、securityの拡張ポイントがある。 実際のコードは用意してあるものを利用すればよい。 Application Authentication ログインページで、認証を行い、成功した場合はsessionを作成するアプリケーションがあるとする。ログイ…

Page その1

画面に対して、Pageを継承したクラスを用意する。 こんなクラス図。(http://click.sourceforge.net/images/click-class-diagram.png) Contextオブジェクトには、コンテキスト情報が含まれている。requestやらsessionやらを使用したい場合などに使用する。 …

ClickFrameWork

http://click.sourceforge.net/ Page駆動のFrameWork 設定ファイルとして、click.xmlをweb.xmlと同じ場所に配置。 <page path="search.htm" classname="com.mycorp.page.Search"/>こんな感じの記述</page>