[Seasar-user:12665] Re: [Teeda] コンポーネント毎の Message の追加(forEach の場合)
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2008年 1月 29日 (火) 10:15:57 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");
>
UIViewRootから取得する場合は、
viewRoot
.findComponent("layoutChildBody")
.findComponent("maintenanceQuestionForm")
.findComponent("answerItems")
.findComponent("hogeAnswer")
のような感じで指定すると取れる気がしますが、
エラーにしたいだけなら、FacesContextに
layoutChildBody:maintenanceQuestionForm:answerItems:1:hogeAnswer
をキーにしてメッセージを突っ込んだほうが簡単です。
layoutChildBody:maintenanceQuestionForm:answerItems:1:hogeAnswer
の値は、上記の値をキーにして、リクエストのパラメータから取れます。
Seasar-user メーリングリストの案内