[Seasar-user:9787] メッセージの出力方法について
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2007年 8月 8日 (水) 15:48:05 JST
お世話になっております。TuMikiです。
メッセージ出力に関して以下のように使おうと考えています。
【概要】
1.id名の取得
LabelHelperをDIして実現、これは問題ないと考えています。
2.エラーメッセージの追加
パッケージ名にinternalが含まれているクラスを使用しています。
直接使ってよいでしょうか?
3.独自エラー時のメッセージ
メッセージファイルをappMessages.propertiesにまとめたかったので、
IDをeapp0001というようなIDにしていますが、使い方に問題は無いでしょうか?
1番以外は、「ソースを見たらこれで動いた」レベルなので今ひとつ自信がありません
。
よろしくアドバイス願います。
【詳細】
1.id名の取得
Teeda.extension.utilにLabelHelperが用意されているので、
Pageクラスでsetterを用意すれば取得できる。
import org.seasar.teeda.extension.util.LabelHelper;
プロパティ&setter
protected LabelHelper lh;
public void setLabelHelper(LabelHelper lh) { this.lh = lh; };
呼び出し
idName = lh.getLabelValue("ID001");
2.エラーメッセージの追加
パッケージ名にinternalが含まれていますが、これを直接使ってよいでしょうか?
import javax.faces.internal.FacesMessageUtil;
FacesMessageUtil.addErrorMessage("I1000", new String[]{ lh.getLabelValue("id
01"), "引数2"});
appMessages.propertiesに
I1000=[I1000]メッセージ確認2:{0}が{1}です
とあれば、置き換わる。引数は{0}と0からの番号で対応付けられる。
コード中にIDが現れないため実体に[I1000]のようにIDを記述する。
3.独自エラー時のメッセージ
throw new SRuntimeException("eapp0001");
と記述する。
2文字目から3文字+"Messages.properties"という名前のリソースファイルから取得
している。
(大文字小文字を区別する)
上の例では
appMessages.propertiesに
eapp0001=データおかしいよ
と記述すれば、置き換わって表示される。
ただし、idの長さが8文字という制約がある
以上
Seasar-user メーリングリストの案内