[Seasar-user:11049] Re: [Teeda] Pageよりエラーを出す場合に該当する項目の色を変えたい

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 10月 17日 (水) 03:00:14 JST


小林 (koichik) です.

Date:    Tue, 16 Oct 2007 19:52:59 +0900
From:    木村 究道 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11037] [Teeda] Pageよりエラーを出す場合に該当する項目の色を変えたい

> Pageクラスから直接エラーを出す場合のやり方は
> http://www.seasar.org/wiki/index.php?FAQ%2FTeeda#q79cd033
> ↑で出来ますが、合わせて該当する項目の文字色や背景色を変
> 更できないでしょうか?

FacesContext#addMessage() を使えばできないことは
ないようです.
以下のようになります.

FacesContext context = FacesContext.getCurrentInstance();
FacesMessage message = 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, "summary", "detail");
context.addMessage("layoutChildBody:addForm:arg1", message);

FacesMessage の第 2 および第 3 引数には
メッセージの概要および詳細を指定します.

問題は FacesContext#addMessage() の第 1 引数で,
上記の例はレイアウトを使っていて,<form id="addForm">
の中にある <input id="arg1"> に対するメッセージを
設定する場合の指定になります.
ただし,ForEach などを使っていると指定の仕方が
変わりますし,Teeda のバージョンアップによっても
変わる可能性が無いとは言えないところなので,
推奨できるやり方ではありません.

> また、DynamicPropertyで出来そうなのですが、一つ一つの項目
> に対して設定が必要みたいですので、入力項目が多い画面では
> かなり大変になりそうなのです。

手間はかかってもこちらの方が無難だと思います.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内