!!![Frequently Asked Questions|http://click.sourceforge.net/docs/faq.html] * [助けてください。|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p1] * [商用サポートは?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p2] * [開発用のツールは?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p3] * [Clickのコントロールが全てを生成するなら、GUIデザイナーはどうやってHTMLを触るのでしょうか?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p4] * [同じHTMLテンプレートを使ったページをたくさん作りたいのですが。|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p5] * [コントロールのリスナーがboolean値を返さなければいけないのは何故?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p6] * [フォームから外したいフィールドがあるのですが。|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p7] * [ページやコントロールの国際化はどうすれば?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p8] * [ページで UTF-8を使うには?||http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p9] * [アプリケーションで使用するキャラクターセットを指定するには?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p10] * [二重ポストを防止するには?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p11] * [拡張子htmlのClickページを使いたいのですが。|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p12] * [拡張子htm以外のURLにマッピングすることはできますか?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p13] * [ClickでCayenneを使うときに必要となるJARは?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p14] * [SpringをClickで使うには?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p15] * [ClickはJSPをサポートしていますか?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p16] * [Clickのパフォーマンスはどの程度ですか?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p17] * [Clickのページのユニットテストはどうやればよいのでしょう?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p18] * [ClickはどうしてロギングにCommons LoggingやLog4jを使っていないのですか?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p19] * [出力部分でFreeMarker使っていないのは何故?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p20] * [何故新しいWebアプリケーションフレームワークを開発したのですか?|http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/click?page=FAQ#p21] !!助けてください。 まずはClickのドキュメントや[Examples|http://click.sourceforge.net/docs/examples.html]を確認してみてください。それでもダメというときには、メーリングリストがあります。Clickプロジェクトには[click-userとclick-developmentの2つのメーリングリスト|http://sourceforge.net/mail/?group_id=82095]があり、ここで質問することができます。これらのメーリングリストは、無料であり、フレンドリーで、たいていの場合迅速な返答が期待できます。 多くのユーザー/開発者がいくつもの質問を投げ、いろんなアイデアについて話し合っています。かなりオススメです。恥ずかしがらずに参加してみてはいかがでしょうか? 以下のリンクの先で、メーリングリスト参加の手続きができます。 * [click-user|https://lists.sourceforge.net/lists/listinfo/click-user] - for Click usage discussions and help * [click-development|https://lists.sourceforge.net/lists/listinfo/click-development] - for Click framework development discussions !!商用サポートは? もしも商用サポート(Commercial Support)が必要でしたり、Clickのトレーニングを受けたい場合には、[Avoka Technologies|http://www.avoka.com/]です。 詳しいことはMalcolm Edgarまでemailで連絡を取ってください。 !!開発用のツールは? 以下オススメのClick開発用ツールです。 ::- [ClickIDE|http://click.sourceforge.net/docs/click-ide.html] :::ClickIDEは Naoki Takezoeが開発した EclipseのWeb Tools Project([WTP|http://www.eclipse.org/webtools/main.php]) プラグインです。ClickIDEで、「Dynamic Web Project」を作成し、「Click」プロジェクトファセットを選択してください。 {{ref_image faq_01.png}} ::- [NBClick|https://nbclick.dev.java.net/] :::NBClickは、Geertjan WielengaとAhmed Mohombeによって開発中のNetBeans用プラグインです。 {{ref_image faq_02.png}} ::- [Velocitywebedit|http://velocitywebedit.sourceforge.net/] :::Velocitywebedit は、VelocityとHTML編集に使うEclipse用プラグインです。Velocity Web Editをインストール後、Eclicpseの設定を変更し、*.htmをVelocityEditorを使うようにしてください。設定は、メニューの「Window」→「Preferences」→「General」→「File Associations」です。 ::- [Veloeclipse|http://propsorter.sourceforge.net/] :::Velocity and HTML Editor plugin for Eclipse ::- [Veloedit|http://veloedit.sourceforge.net/] :::Velocity and HTML Editor plugin for Eclipse !!Clickのコントロールが全てを生成するなら、GUIデザイナーはどうやってHTMLを触るのでしょうか? Clickは手動でのHTML作成を妨げることはありません。コントロールのHTML化を自動的に行う手段のひとつを提供しているだけなのです。 HTMLを生成するのにいくつかのアプローチがあり、それぞれに長所、短所があります。ここではそれを順にみていきます。 '''__1.必要なHTMLを全部Clickのフォームとコントロールで済ます__''' これはいわゆる80/20のアプローチで、この方法を取れば迅速に開発をこなすことができますが、おそらくUI要求を全て満たすことはないでしょう。 もちろん、各種フォームコントロールには多くの[自動レイアウト|http://click.sourceforge.net/docs/click-api/net/sf/click/control/Form.html#auto-layout]オプションがあります。この点に関しては[click-examples|http://click.sourceforge.net/docs/examples.html]の「Form Properties」をごらんになってください。 フォームコントロールは、きめ細かなCSSの制御によってHTML要素内の「form」「fields」「errors」「buttons」などの属性を出力します。 フィールド間の垂直間隔を変更するようなフォームを考えます。この場合、フォームの前にCSSのstyleを定義しておくのが一番簡単でしょう。 {{code html $form }} フィールドは、個々のフィールドが操作できるよう、「id」属性を持って出力されます。 '''__2.HTML出力を調整するためにClickのFormやControlのサブクラスを作る__''' これは、Webアプリケーション内で共通のlook&feelを取りたいときに有効なアプローチです。ただしこれはがんばってコードを書くことになります。 '''__3.Panelコントロールを使う__''' [[Panel]]コントロールはVelocityテンプレートをサポートしており、多くのページに含まれるような再利用可能なHTML部分を作成する理想的な手段のひとつです。Panelは、コントロールのネストにも対応しており、Panel上のコントロールの動作も問題ありません。 '''__4.Verocityマクロを使う__''' これは、Webアプリケーション内での再利用を可能にする容易な手段です。 フォーム用の[Velocityマクロ|http://click.sourceforge.net/docs/click-api/net/sf/click/control/Form.html#velocity-macros]の例をチェックしてみてください。また、[click-examples|http://click.sourceforge.net/docs/examples.html]の「Velocity Macro」も要チェックです。 '''__5.手でHTMLのレイアウトをする__''' 表示することに関しては多分究極の手段です。ですが再利用性は全然無くなるでしょう。フォームの[手動レイアウト|http://click.sourceforge.net/docs/click-api/net/sf/click/control/Form.html#manual-layout]の例を参照してください。 !!同じHTMLテンプレートを使ったページをたくさん作りたいのですが。 ページテンプレートの詳細については、[こちら|http://click.sourceforge.net/docs/pages.html#page-templating]。 ページテンプレートの利用は、以下を含む多くのメリットがあるため、激しく推奨されています。 * メンテナンスの必要なHTMLがものすごく減る * 共通のlook&feelが保障される * テストしなければいけないコードが減るので、頑丈なアプリケーションになる 実際どんなものかは、[click-examples|http://click.sourceforge.net/docs/examples.html]を動かして確認してください。 !!コントロールのリスナーがboolean値を返さなければいけないのは何故? コントロールのリスナーは、処理を続けるかを示すboolean値を返さなければなりません。 処理を続けるためには、リスナーはtrueを返さなければいけませんし、停止するためにはfalseを返しすことになります。 途中で処理を停止する理由は、別のページへの直接遷移が可能になるからです。これは処理を継続することで時間を無駄にすることになってしまうことを回避します。この特徴を、breakやgotoステートメントのように使うことができます。 例: {{code java public boolean onLogoutClick() { setRedirect(Logout.class); return false; } }} 詳細に関しては、[Page Navigation|http://click.sourceforge.net/docs/pages.html#page-navigation]の項目を参照してください。 !!フォームから外したいフィールドがあるのですが。 フォームに表示されているフィールドを除外するには、Form.removeFields()メソッドを使用します。これはページテンプレートの中でも利用可能です。Just make sure you call you call it before $form renders itself. {{code html $form.removeFields(["field11", "field15", "field22"]) $form }} !!ページやコントロールの国際化はどうすれば? Click はアプリケーションのローカライゼーション/国際化(I18N)に対するサポートが充実しています。 '''Page Messages''' Pageクラスは、[getMessage(String)|http://click.sourceforge.net/docs/click-api/net/sf/click/Page.html#getMessage(java.lang.String)]メソッドを利用することで、ローカライズされた文字列を扱うことができます。Loginクラスというクラスパス上に3つのプロパティファイルを持つページがあるとします。 /com/mycorp/pages/Login.properties /com/mycorp/pages/Login_en.properties /com/mycorp/pages/Login_fr.properties このLoginクラスの中で、getMessage() メソッドを使い、ローカライズされた文字列を取出すことができます。 {{code java public void onInit() { addModel("title", getMessage("title")); } }} そしてページテンプレート上で[MessagesMap|http://click.sourceforge.net/docs/click-api/net/sf/click/util/MessagesMap.html]オブジェクトを利用して テンプレートにmessagesという名前で追加された文字列を利用できます。 {{code html