2006-10-01から1ヶ月間の記事一覧
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=TypeSafeActionListenerなるほど・・・すごいねぇ〜Swingとかと同じに使えそうですね〜 Stringでコールバックメソッド定義するの嫌だったので目にうろこです!
というわけで散々書き貯めたこのテキスト 途中からはただの中途半端な翻訳になってしまったわけですが・・・ 本来はもう少しためてから・・・と思ってたんだけどね 気づいちゃったわけですよ。何に?って http://amateras.sourceforge.jp/cgi-bin/fswiki/wik…
click-appには、charsetと、localeがあります。 charsetで指定した文字エンコーディングは、 Velocityのテンプレート requestのエンコーディング pageのContent-typeのcharset に使用されます。 なので、以前の記述にある、headersでの、指定は特に必要ない…
簡単な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>
まずは、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>
設定ファイルは、 WEB-INFの下に、web.xml、click.xmlが必要となります。 また、オプションとして、velocity.propertiesを含むことが出来ます。
FromのLayoutやら、VOへのcopyやら便利メソッドが多いので、Formクラスのドキュメントは一読 例) form.setErrorsPosition(Form.POSITION_TOP); でエラー表示がFormの上になる。 nputVO inputVO = new InputVO(); form.copyTo(inputVO); でVOに値がcopyされ…
Page Scope Messages > Global Page Scope Messages > Controll Scope Messages > Global Controll Scope Messages となる。
Controllにも個別のプロパティとGlobalなプロパティがあります。 Controll Scope Messages com.mycorp.control.CustomTextFieldが存在した場合、リソースは以下にある必要がある。 /com/mycorp/control/CustomTextField.properties Global Control Scope Mes…
このあたりで、入力チェックに引っかかった場合などのメッセージが文字化けしていると思います。もしくはページに日本語を使用していた場合に大惨事になってるかもしれません。 click.xml にHeaderの指定している人は <header name="Content-Type" value="text/html; charset=shift_jis"/>と追加しましょう。もちろんページごと</header>…
以下のような実装をしたとします。 public HomePage() { ActionButton actionButton = new ActionButton("button","buttonLabel"); actionButton.setListener(this, "onButtonClick"); addControl(actionButton); } public boolean onButtonClick() { System…
画面側で発生したイベントをサーバ側で取得する仕組みです。 以下のようなシーケンス図(http://click.sourceforge.net/images/control-post-sequence-diagram.png) Controlは以下のインターフェースを実装する(http://click.sourceforge.net/images/contr…
Pageクラスは、messagesというプロパティを持っていて、これまた、画面に表示することが出来る。 以下は、titleというプロパティを表示する例 $messages.title このmessagesは以下の場所からLoadされる。 PageScopeMessages この場合、Pageクラスがcom.mycor…
例外のハンドリングについては、 デフォルトで用意されている。 実際には定義されてはいないが、以下の指定がされているのと同等である。 <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>…
StrutsのtilesのようにTemplateを使用することが出来る。 テンプレートPageの作成 まずは、templateとなるクラスを、Pageを継承して作成 public class BorderedPage extends Page { /** * @see Page#getTemplate() */ public String getTemplate() { return …
forwardの場合 _/** * @see Page#onPost() */ public void onPost() { // Process form post .. setForward("index.htm"); } このようにすると、遷移先の新しいPageインスタンスを使用する。遷移先のPageのコントロールは実行されない。(?) 値の引継ぎ 方…
onInit() onSecurityCheck() onGet() onPost() onRender() onDestroy() 以下のようなシーケンス図(http://click.sourceforge.net/images/get-sequence-diagram.png) onInit() FrameWorkがいろいろした後に初期化処理として利用 onSecurityCheck() 認証など…
onSecurityCheckメソッドが用意され、securityの拡張ポイントがある。 実際のコードは用意してあるものを利用すればよい。 Application Authentication ログインページで、認証を行い、成功した場合はsessionを作成するアプリケーションがあるとする。ログイ…
画面に対して、Pageを継承したクラスを用意する。 こんなクラス図。(http://click.sourceforge.net/images/click-class-diagram.png) Contextオブジェクトには、コンテキスト情報が含まれている。requestやらsessionやらを使用したい場合などに使用する。 …
http://click.sourceforge.net/ Page駆動のFrameWork 設定ファイルとして、click.xmlをweb.xmlと同じ場所に配置。 <page path="search.htm" classname="com.mycorp.page.Search"/>こんな感じの記述</page>
SeasarをDIとしてではなく、teedaを中心に調べてたわけだけど・・・ (ってなんかおかしいな・・・文章・・・粒度が違うというか比べられるわけないけど)Page駆動ってのは流行だし、わかりやすいし、 がんばればかなりオブジェクティブかな〜と思う。ただ、…
http://apiblog.kakaku.com/KakakuItemSearchV1.0.html 価格.comでもAPIが公開されました。 以前YahooJapanAPIの時は、JaxMeなどでマッピングしたけど、 今度はrelaxerを使用してみようということで実験 Relaxer1.1はインストール済みで、 RELAX_HOMEが環境…