About
もうひとつの hiromasa.zone。-
Recent Comment
Kyodeki
Category
-
Random Post
WordPress
このブログで関連すると思われる他の投稿
-
Stax Networks への JavaEE アプリのデプロイ
public, Stax, import, xml, Java, twitter, Twitter, http, java, デプロイ, Networks, String, tweet, Path, RESTEasy, WAR, account, ant, djodeko, javax -
マルチプラットフォームの GUI アプリケーション
SWT, import, JFace, eclipse, org, new, jface, ApplicationWindow, GUI, window, Linux, Windows, public, Java, swt, Eclipse, File, GTK, JFaceSample, MenuManager -
Eclipse WTP + Apache Tomcat 環境設定
Apache, Eclipse, Click, Tomcat, デプロイ, 選択, Java, サーバ, ファイル, プロジェクト, 実行, 環境, 起動, EE, アプリ, ブラウザ, 新規, 構成, 設定, 追加 -
サーバサイド Groovy と Groovlets
groovy, Groovy, Groovlets, servlet, コンパイル, import, index, Eclipse, Java, url-pattern, サーバ, デプロイ, ファイル, 開発, --, GSimpleServlet, Groovy-Eclipse, WEB-INF, html, servlet-mapping -
JavaScript も HTML もかかずに Web アプリをつくる
HTML, JavaScript, ZK, Java, Web, Google, アプリ, ぼく, フレーム, ブラウザ, ワーク, 人, 業務, 問題, 必要, 知識, AJAX, AppSpace, GWT, RIA

















Click Framework を使ってみる
クラウドというキーワードの影響か、Java EE なアプリケーションがデプロイできるインターネットサーバも増えてきました。 てなわけで、お手軽なフレームワークらしい Click Framework をためしてみました。 さすがのぼくもお遊びで Struts 使う元気はありません。。
インターネットで配布される Web のアプリはやはり PHP が多いような気がしますが、ひとたびライブラリだフレームワークだとなると環境を整えるのが面倒なものです。 あれ、パス狂ってるよみたいな。 ファイルの管理も面倒です。
ぼくは Web アプリかくとき Java のほうが便利と感じますが、これは言語的なものよりも、フレームワークやライブラリなど周辺環境的なことのほうが多いのかもしれません。 もちろん、言語も Java のほうがある意味楽ですが。
さて、そんな Java EE アプリの作成を手伝ってくれる Click Framework。
Click もコンポーネント指向ということで、Java のソース上でコントロールをぺたぺた add していけば勝手に HTML をかいてくれます。 といっても前にちらっとかいた、ZK よりも Click さんはもうちょっと自由。 HTML のテンプレートエンジンで部品を挿入する感じのようです。
以下のリンクを参照させていただき、学習しました。
本家ドキュメント。
Eclipse のプラグインの使い方。
Click は HttpServletRequest がみえる薄めのフレームワークです。 画面1つに対してクラスがひとつ割り当ります。 このため、別画面遷移などではちょっと http/html のレイヤに近い部分の考慮が必要になりますが、ぱらっとかくぶんにはしばりが少ないので良いのかなと感じました。
てなわけで、えーかげんですが1画面。 まず Page クラスを extends して画面に対応するクラスをつくります。
// public フィールドに $ 付けた名称が HTML テンプレートにかける/*** イニシャライズメソッド*/// テーブルの列設定// ソートできて8行なんていう設定table.setShowBanner(true);table.setSortable(true);/*** HTTP/GET のときに onInit の後、呼ばれる*/new ArrayList<Map<String, String>>();Twitter twitter = new Twitter();try {// twitter からステータスひろってテーブル列名と// 対応したハッシュにつめるfor (Status status : statuses) {new HashMap<String, String>();record.put("name", status.getUser().getName());record.put("text", status.getText());// ハッシュをリストにつめる// テーブルにリストをつめる} catch (TwitterException e) {こんな感じなのかな・・・。 table というコントロールを作成しています。 GUI みたいに値をつめます。 で、こういうコントロールを public フィールドにおいておくと、Click が 対応する HTML にバインディングしてくれます。
html はこんなかんじで。
HTML の "$table" のところにフレームワークがコントロール(ここではテーブル)の HTML を挿入してくれます。
のがみそですね。
Java のほうには Twitter4J を呼んでいるところがみえるのでお察しかもしれませんが twitter の public タイムラインをテーブルにつめて表示しています。
ほとんどプログラム書いていないのに、テーブルレンダリングはもちろん、超面倒なページングとテーブルソートが実装されます。 このプログラム自体は、15分かかってないくらいのものですが、これを素の PHP でかいたら何時間かかるか。 $_GET でごにょごにょっ、1行ずつ色違い?あぁいやだいやだ(笑)
これは、ライブラリ jar をぽいぽいいれてちょろっとかいただけなのです。
てなわけで、これを Java EE デプロイ可能な Morph AppSpace サーバにデプロイします。 ここは PC でコマンドうつだけで転送から、起動までやってくれます。
ちなみにコンパイラ準拠レベルは 5.0 におとさないと、UnsupportedClassVersionError しちゃいました。 サーブレットコンテナは Jetty のようです。
動作をみてみます。(そのうち消しますので期間限定)
まぁまぁ、アプリとしてみると、ちゃんとキャッシュしろとか例外処理してないとかって話もありますが、15分でページング・ソートまでできちゃうのは明らかに作成効率は良いです。
まだ眺めている程度で、DB つかう場合の接続タイミングとかちょっと不明点もあるのですが、サンプルもたくさんあるのでソース読めばわかることでしょう。
いろいろな HTML コントロールもみることができます。
Java EE 使えるサーバがあるといろいろ広がりますね。 日本でも Morph みたいなことやってくれる会社がでてくると使いやすいのですが!
こう考えるとクラウドというのは利用者というより開発者視点なんじゃないかと思います。 なんたって、年間 10万円もだせば自分の力ではありえないくらいのアプリケーションよりの設備を、勝手に24時間運用してくれるわけですから、、がんばれば月1万くらいかせげる Web アプリは個人でもつくれるわけで。 2万円儲かりますね(笑)
え"、取らぬ狸の皮算用?