m-namikiの日記

おもしろき こともなき世を おもしろく

エラー部分の表示

会社の社内システム化分科会用のプロトタイプをCubby+Mayaaで作っているんだけど、入力チェックエラーメッセージの表示がイマイチ上手くいかない。やりたいことは、入力チェックエラーメッセージをliタグでリスト化、ようはCubbyのerror.jspMayaa版なんだけれど、実際に動かしてみるとliタグが消えてしまった。

<!-- layout.html -->
<div id="errors" class="errors">
  <ul>
    <div id="error">
      <li><span id="errorMessage">Dummy Error Messages.</span></li>
    </div>
  </ul>
</div>
<!-- layout.mayaa -->
<m:if m:id="errors" test="${!errors.empty}" replace="false"/>
<m:forEach m:id="error" items="${errors.all}" var="error" index="i">
	<m:write m:id="errorMessage" value="${error}" replace="false"/>
</m:forEach>
<!-- 実行後のHTMLソース -->
<div id="errors" class="errors">
  <ul>
    ユーザーIDは必須です。パスワードは必須です。
  </ul>
</div>

タグ内でとやると、layout.htmlにある「Dummy Error Messages.」まで表示されてしまう。うーん、なんだろ。そもそもMayaaの仕組みをきちんと理解出来ていないからだろうなぁ。ちょっと萎え萎え。もう一度ドキュメント読んでこよう。。。orz


追記:
タグが出力されないんだったら、こっちから出力してしまえ!という訳で、を利用したら上手くいった。けどホントにこんなんで良いんだろうか?

<!-- layout.mayaa -->
<m:if m:id="errors" test="${!errors.empty}" replace="false"/>
<m:forEach m:id="error" items="${errors.all}" var="error" index="i">
  <!-- 追加 -->
  <m:element name="li">
    <m:write m:id="errorMessage" value="${error}"/>
  </m:element>
</m:forEach>
<!-- 実行後のHTMLソース -->
<div id="errors" class="errors">
  <ul>
    <li>ユーザーIDは必須です。</li><li>パスワードは必須です。</li>
  </ul>
</div>