##### Cubby 2.0

- ホーム

##### スタートアップガイド

- 2分間チュートリアル
- 5分間チュートリアル

##### リファレンス

- セットアップ
- アクション
- バリデーション
- メッセージリソース
  - メッセージリソース用のプロパティファイル
  - Java コード中でメッセージを取得する
  - JSP 中でメッセージを取得する
- JSP
- Mayaa
- カスタマイズ
- JavaDoc
- TLDDoc
- Tips集
- 移行ガイド

##### プロジェクト文書

- プロジェクト情報
- プロジェクトレポート

##### モジュール

- Cubby
- Cubby Unit
- Cubby S2Container Plugin
- Cubby Guice Plugin
- Cubby Spring Plugin
- Cubby Gson Plugin
- Cubby OVal Plugin
- Cubby S2Container Integration Archetype
- Cubby Guice Integration Archetype
- Cubby Spring Integration Archetype
- Cubby Admin
- Cubby Distribution

## 目次

- メッセージリソース用のプロパティファイル
- Java コード中でメッセージを取得する
- JSP 中でメッセージを取得する

## メッセージリソース用のプロパティファイル

入力検証のエラーメッセージや org.seasar.cubby.util.Messages から取得するアプリケーションのメッセージを定義します。 デフォルトではクラスパスのクラスルート上のリソース「messages」が使用されます。 app-cubby.dicon に org.seasar.controller.MessagesBehaviour を実装したクラスを定義することで、リソースバンドルの取得方法などを変更することができます。

archetype でプロジェクトの雛形を作成すると、リソースディレクトリに入力検証で出力するエラーメッセージが設定されプロパティファイルが作成されます。 これにアプリケーションで使用するメッセージを追記したり入力検証のエラーメッセージを変更したりしてください。

messages_ja.properties

    # 入力検証エラーメッセージ
    valid.required={0}は必須です。
    valid.maxLength={0}は{1}文字以下で入力してください。
    ...
    valid.email={0}のメールアドレスの形式が正しくありません。

    # アプリケーションで使用するメッセージ
    text=タイトル
    type=優先度
    memo=メモ
    limitDate=期限日
    ...

## Java コード中でメッセージを取得する

Messages#getTextメソッドでメッセージを取得することができます。

    import org.seasar.cubby.util.Messages;

    public class MessageTestServiceImpl implments MessageTestService {
    ...
      public void getMessageSample() {
        // 置換文字なし
        String message1 = Messages.getText("msg.sample1");
        // 置換文字なし
        String message2 = Messages.getText("msg.sample2", "foo", "bar");
        ...
      }
    ...
    }

## JSP 中でメッセージを取得する

プロパティファイルを Map に変換した暗黙オブジェクト「messages」リクエストスコープの属性にセットされています。 EL 式では$messages['キー']でメッセージを取得することができます。 EL 式ではメソッド呼び出しができないため、置換文字を引数として渡すことができません。

    <span>${messages['msg.sample1']}</span>

エスケープして出力する場合は以下のように記述します。

    <span>${f:out(messages['msg.sample1'])}</span>