 |

|
徹底比較!!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 五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。
|
|
|
|