Click FrameworkAdvertisement概要(ClickFrameworkとは)Clickはイベントベースなプログラミングモデルに基づいたWEBアプリケーションフレームワークです。
http://click.sourceforge.net/ ライセンスはApacheライセンスです。 特長
QuickStart1.Click APIの入手ClickFrameworkのサイトからClickのバイナリをダウンロードし、clickX.X.jar(X.Xはバージョン番号)にパスを通す。2.Click用のweb.xmlを作成WEB-INF/web.xmlにClickServletの定義を記述する。例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<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>*.html</url-pattern>
</servlet-mapping>
</web-app>
3.click.xmlの作成WEB-INF/click.xmlファイルを作成する。例 <?xml version="1.0" encoding="UTF-8"?> <click-app> <pages package="sample" automapping="true"/> </click-app> 4.HomePageクラスの作成
package sample;
import net.sf.click.Page;
public class HomePage extends Page {
}
パッケージは3.click.xmlの作成で作成したclick.xmlのpagesで指定した場所を利用
5.テンプレートファイルの作成home.html<html> <head> <title>Hello</title> </head> <body> Hello ClickFramework! </body> </html> 6.実行http://localhost:8080/click/home.htmlにアクセスして、画面が表示されれば成功。 ![]() 図1:QuickStart実行結果 テンプレート機能を利用
Clickはビューの描画にVelocityを利用している。Velocityの記法や動作は
http://634.ayumu-baby.com/velocity/index.html を参照 テンプレートエンジン利用例home.html
<html>
<head>
<title>${title}</title>
</head>
<body>
${title} ClickFramework!
</body>
</html>
HomePage.java
package sample;
import net.sf.click.Page;
public class HomePage extends Page {
public String title = "Helooooooo!!!";
}
結果 タイトルとボディ部分にどちらもHelooooooo!!! ClickFrameworkが表示される。 ![]() 図2:テンプレートエンジン利用結果 コントロール
Clickには様々なコントロールを描画、制御するためのクラス
Package net.sf.click.control.Control が用意されている。 これにより、部品の組み立てをプログラム側で行い、描画をレンダリングエンジンに任せるといった明確な役割分担が可能となる。 サンプルアプリケーションControl.java
package page.control;
import net.sf.click.Page;
import net.sf.click.control.Form;
import net.sf.click.control.PasswordField;
import net.sf.click.control.Submit;
import net.sf.click.control.TextField;
import page.sample.Home;
public class Control extends Page {
public Form form = new Form();
public Control() {
form.add(new TextField("username", true));
form.add(new PasswordField("password", true));
form.add(new Submit("ok", " OK ",
this, "onOkClick"));
form.add(new Submit("cancel", this, "onCancelClick"));
}
public boolean onOkClick() {
return true;
}
public boolean onCancelClick() {
setRedirect(Home.class);
return false;
}
}
control.html
<html>
<head>
<title>control</title>
<link rel="stylesheet"
type="text/css"
href="click/control.css"
title="Style"/>
<script language="javascript"
src="click/control.js"></script>
</head>
<body>
$form
</body>
</html>
click.xml
<?xml version="1.0" encoding="UTF-8"?>
<click-app>
<pages>
<page path="control.html" classname="page.control.Control"/>
</pages>
</click-app>
結果 ![]() 図3:画面初期表示 ![]() 図4:エラーチェック 他のコントロールコントロール一覧
これらの関係を表すクラス図はこちら http://click.sourceforge.net/docs/controls.html#control-class イベント
Clickはイベント駆動フレームワークとして設計されているため、複数のメソッドがPageクラスに定義されていて、
対応したイベントが発生するたびにそのメソッドが実行される。
onInit() イベントハンドラの初期化時に実行される onSecurityCheck() セキュリティーチェックイベントが発生すると実行される onGet() Getメソッドが実行されると発生する。 onPost() Postメソッドが onRender() ページの描画が開始されるときに実行される onDestroy() イベントハンドラが破棄されるときに実行される。クリーンアップ用コード等を記述する。 リンクAdvertisement |
ショートカット・634トップページ・このカテゴリのトップページに戻る ・634ラボ サイト検索Y!ログール |