[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 メーリングリストの案内