[Seasar-user:12650] Re: [Teeda] コンポーネント毎の Message の追加(forEach の場合)

松山 大樹 [E-MAIL ADDRESS DELETED]
2008年 1月 28日 (月) 11:39:52 JST


松山です。

コンポーネント毎にメッセージを指定する方法として、
[Seasar-user:9543] で、大谷さんが回答されていて、この方法を使っているのですが、
forEach の中のコンポーネントid は、どのように指定すればいいのでしょう?

例)
<form id="maintenanceQuestionForm">
<table>
<tbody id="answerItems">
<tr>
    <td><span id="no">99</span></td>
    <td><input type="text" id="hogeAnswer" /><span id="answerMessage">error</span></td>
</tr>
</tbody>
</table>

この場合、たとえば、2行目のtext だけエラーにしたいという場合です。

UIComponent findComponent = viewRoot.findComponent(
"layoutChildBody:maintenanceQuestionForm:answerItems:1:hogeAnswer");

と指定してみましたが、null が返ってきます。

teeda-core-1.0.12-rc1 です。

よろしくお願いします。



> 大谷です.
> 
> こんな感じで出来ます.
> 
> FacesContext context = FacesContext.getCurrentInstance();
> UIViewRoot viewRoot = context.getViewRoot();
> //formのid+該当のコンポーネントのid
> UIComponent findComponent = viewRoot.findComponent("addForm:arg1");
> FacesMessageUtil.addErrorComponentMessage(context, findComponent,
> 				"javax.faces.validator.LengthValidator.MAXIMUM");
> 
> 今のところこのような形式でしか出来ないです.
> 取り急ぎ.
> 
> 07/07/29 に Nishioka Naoto<[E-MAIL ADDRESS DELETED]> さんは書きました:
>> にしおかです。
>>
>> あまり汎用的でないため、
>> できれば独立したValidatorクラスを作らずに
>> doXXXメソッド内でチェックを行いたいのですが、
>> この場合、「指定したID+Message」として
>> エラーメッセージを出力することはできないのでしょうか?
>>
>> 画面全体としてのメッセージとして出力する場合は
>> http://ml.seasar.org/archives/seasar-user/2007-January/007567.html
>> を参照に出力できたのですが、
>> 個別のコンポーネント毎のメッセージとする場合は、
>> http://ml.seasar.org/archives/seasar-user/2007-July/011076.html
>> のようにDynamicValidatorで処理を行い、
>> 例えばインナークラスとしてValidatorを定義するといった対応しか
>> ないのでしょうか?
>> (doXXXでValidatorExceptionをスローすると、エラーページに
>> 遷移してしまいました)
>>
>> addMessage(componentName, message)
>> のようなメソッドがあれば非常にうれしいのですが。
>>
>> --------------------
>> Nishioka Naoto
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
> 
> 


-- 
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
:::   ITシステムインテグレートサービスDept.
:::  Webソリューション開発Unit.
:::   松山 大樹 - [E-MAIL ADDRESS DELETED]
:::      tel 045-345-0429 fax 020-4622-7043



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