入力検証のエラーメッセージや 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=期限日
...
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");
...
}
...
}
プロパティファイルを Map に変換した暗黙オブジェクト「messages」リクエストスコープの属性にセットされています。 EL 式では$messages['キー']でメッセージを取得することができます。 EL 式ではメソッド呼び出しができないため、置換文字を引数として渡すことができません。
<span>${messages['msg.sample1']}</span>
エスケープして出力する場合は以下のように記述します。
<span>${f:out(messages['msg.sample1'])}</span>