第3回:JSFとRailsで比較(後編) (1/3)

徹底比較!!Ruby on Rails vs Javaフレームワーク
徹底比較!!Ruby on Rails vs Javaフレームワーク

第3回:JSFとRailsで比較(後編)

著者:DTS  五座 淳一   2006/9/12
1   2  3  次のページ
前回は

   前回は、アーキテクチャ、ルーティング、ビュー、ビュー/アクション連係についてJSFとRailsを比較してきました。続く今回は、ビューヘルパーとバリデーションに関して解説していきます。

ビューヘルパーの比較

   まずは、ビューヘルパーについてです。システムとして、ビューにロジックを持たせることはMVCモデルの関係を崩してしまうため、望ましくありません。しかし、ビューとロジックを明確に分離することは難しく、ビューにロジックを記述しなければならない状況になることはよくあります。

   これを解決するのがビューヘルパーです。独自にカスタマイズされたタグを新たに作成することで、ビューにロジックが入り込むことを極力避けることができます。


JSFのビューヘルパー

   JSFのビュー(JSP)に入り込んでしまったロジックは、スクリプトレットとして表現されます。スクリプトレットはJSPの可読性を著しく落としてしまうため、できるだけ使用を避ける必要があります。

   スクリプトレットを避ける手段として用いられるのが、JSPのカスタムタグです。カスタムタグを作成するには、次のファイルを編集、もしくは作成する必要があります。

  • タグハンドラクラス
  • taglibディスクリプタ
  • カスタムタグを記述したJSP

表1:カスタムタグを作成するのに非常なファイル

   次に示すのは、name属性に記述した名前を使って「こんにちは〜さん」と表示する非常に単純なカスタムタグを作成する例です。

タグハンドラクラス
public class HelloTag extends SimpleTagSupport {
   private String name;

   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public void doTag() throws JspException, IOException {
      String message = "こんにちは " + name + "さん";
      getJspContext().getOut().write(message);
   }
}

taglibディスクリプタ
<tag>
   <description>HelloTag</description>
   <name>hello</name>
   <tag-class>com.example.jsf.HelloTag</tag-class>
   <body-content>empty</body-content>
   <attribute>
      <name>name</name>
      <required>true</required>
   </attribute>
</tag>

JSPにてカスタムタグを使う
<%@ taglib uri="/WEB-INF/my-taglib.tld" prefix="my" %>
<my:hello name="田中"/>

   たったこれだけの機能を実現するために、これほどの記述量があるカスタムタグの作成は、面倒であるといわざるを得ません。

   また、カスタムタグに似た機能として、カスタムコンポーネントと呼ばれるUIコンポーネントを独自に作成する機能があります。カスタムタグを使って実現されているため、カスタムコンポーネントを作成するのもカスタムタグ同様に簡単ではありません。

1   2  3  次のページ


株式会社DTS  五座 淳一氏
著者プロフィール
株式会社DTS  五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


INDEX
第3回:JSFとRailsで比較(後編)
前回は
  Railsのビューヘルパー
  Railsのバリデーション
徹底比較!!Ruby on Rails vs Javaフレームワーク
第1回 O/Rマッピング
第2回 JSFとRailsで比較(前編)
第3回 JSFとRailsで比較(後編)
第4回 DIコンテナとの比較
第5回 テストフレームワーク
第6回 RailsとGrailsの比較(前編)
第7回 RailsとGrailsの比較(後編)
Ruby on Rails入門
第1回 Railsが注目されている理由
第2回 すぐできるアプリケーション作成
第3回 アーキテクチャと検索機能の追加
第4回 Railsでテストをしてみよう
第5回 Ajaxアプリケーションの作成
第6回 プラグインでさらに生産性アップ
第7回 Linux環境で動作させよう

人気記事トップ10

人気記事ランキングをもっと見る