~~ ~~ Copyright 2004-2010 the Seasar Foundation and the Others. ~~ ~~ Licensed under the Apache License, Version 2.0 (the "License"); ~~ you may not use this file except in compliance with the License. ~~ You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, software ~~ distributed under the License is distributed on an "AS IS" BASIS, ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, ~~ either express or implied. See the License for the specific language ~~ governing permissions and limitations under the License. ~~ -------- メッセージリソース -------- agata baba -------- 2009-03-13 -------- {目次} *{{{#メッセージリソース用のプロパティファイル}メッセージリソース用のプロパティファイル}} *{{{#Java_コード中でメッセージを取得する}Java コード中でメッセージを取得する}} *{{{#JSP_中でメッセージを取得する}JSP 中でメッセージを取得する}} {メッセージリソース用のプロパティファイル} 入力検証のエラーメッセージや org.seasar.cubby.util.Messages から取得するアプリケーションのメッセージを定義します。 デフォルトではクラスパスのクラスルート上のリソース「messages」が使用されます。 app-cubby.dicon に org.seasar.controller.MessagesBehaviour を実装したクラスを定義することで、リソースバンドルの取得方法などを変更することができます。 archetype でプロジェクトの雛形を作成すると、リソースディレクトリに入力検証で出力するエラーメッセージが設定されプロパティファイルが作成されます。 これにアプリケーションで使用するメッセージを追記したり入力検証のエラーメッセージを変更したりしてください。 <> +------------------------------------------------------+ # 入力検証エラーメッセージ valid.required={0}は必須です。 valid.maxLength={0}は{1}文字以下で入力してください。 ... valid.email={0}のメールアドレスの形式が正しくありません。 # アプリケーションで使用するメッセージ text=タイトル type=優先度 memo=メモ limitDate=期限日 ... +------------------------------------------------------+ {Java コード中でメッセージを取得する} {{{cubby/apidocs/org/seasar/cubby/util/Messages.html#getText(java.lang.String)}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 式ではメソッド呼び出しができないため、置換文字を引数として渡すことができません。 +------------------------------------------------------+ ${messages['msg.sample1']} +------------------------------------------------------+ エスケープして出力する場合は以下のように記述します。 +------------------------------------------------------+ ${f:out(messages['msg.sample1'])} +------------------------------------------------------+