TOPシステム開発> Railsのビューヘルパー
徹底比較!!Ruby on Rails vs Javaフレームワーク
徹底比較!!Ruby on Rails vs Javaフレームワーク

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

著者:DTS  五座 淳一   2006/9/12
前のページ  1  2  3  次のページ
Railsのビューヘルパー

   JSPのカスタムタグと同等の機能をもつのがRailsのヘルパーという機能です。JSFのカスタムタグが複雑であったのに対してRailsのヘルパーは非常に簡単です。ビューに入り込んでしまったロジックをヘルパーにメソッドとして記述し、ビューではそのメソッドを呼び出すことで、ビューからロジックを分離できます。

   ヘルパーの作成方法については、コントローラごとにヘルパーモジュールを作成することができます。ここでも命名規則がきまっており、例えば、LoginControllerというコントローラのヘルパーを作成する場合、LoginHelperという名前になります。

   このコントローラに定義されたメソッドは何の設定もなしに、ビュー内にてタグ形式で使用することができます。
ヘルパーメソッド
   def display_name(name)
      "#{name || 'ゲスト'}"
   end
end

ヘルパーメソッドの使用例
ようこそ <%= display_name (@name) %>さん


ビューヘルパーの比較結果

   記述量、シンプルさではRailsに分があることがわかりましたが、JSFの場合、タグライブラリとしてアプリケーションから切り離し、他でも使用するという狙いがあります。既にカスタムタグをまとめたカスタムタグライブラリが数多くリリースされていますので、これらを活用することである程度、カスタムタグ作成の手間を省けることでしょう。


バリデーションの比較

   最後に、入力値の正当性を確認するために用いられるバリデーション機能について比較します。記述量にはほとんど違いがありませんが、JSFとRailsではバリデーションの考え方が異なります。


JSFのバリデーション

   JSFのバリデーションは、JSFが提供するカスタムタグを使ってJSPに記述します。次に示すのは「f:validateLength」タグを使って、入力された文字列長が4文字以上32文字以下であることを確認しています。

JSFバリデーション
<h:inputText id="user_name" value="#{userBean.name}">
   <f:validateLength minimum="4" maximum="32"/>
</h:inputText>

前のページ  1  2  3  次のページ


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


INDEX
第3回:JSFとRailsで比較(後編)
  前回は
Railsのビューヘルパー
  Railsのバリデーション