2001-12-21 (Fri) Jakarta-Struts 1.0

_ iterateの書き方

昨日書いたように、iterateタグを試行錯誤しました。はまりポイントは2つあって、html:textをiterateする方法と、html:selectの書き方です。このように書きます:
===== JSP =====
<html:form action="foo">
<% int i = 0; %>
<logic:iterate id="element" name="autoCollectResultForm"
      property="urls" indexId="index" scope="request">
<TR>
  <TD height="20" width="17%" valign="top" class="text" nowrap>
    <bean:write name="autoCollectResultForm" property='<%= "urls[" + i + "]" %>'/>
  </TD>
  <TD height="20" width="18%" valign="top">
    <html:textarea cols="16" rows="3" name="autoCollectResultForm" property='<%= "comments[" + i + "]" %>'/>
  </TD>
  <TD height="20" width="18%" valign="top">
    <html:select name="autoCollectResultForm" property='<%= "keys[" + i + "]" %>'>
      <html:options name="autoCollectResultForm" labelProperty="keyNames" property="keyIds"/>
    </html:select>
  </TD>
</TR>
<% i++; %>
</logic:iterate>
</html:form>
===== ActionFormのプロパティ =====
  private String urls[];
  private String comments[];
  private String keyIds[];
  private String keyNames[];
  private String keys[];

こんな感じです。1.0では、iをScriptletにしなければいけませんが、次バージョンでは改善されているようです。

で、なぜか真っ黒になってしまいますね。HTMLではきちんと書かれているので、CSSの設定でしょうか。とりあえずこのまま載せておきます。ご覧になりたい方はHTMLソースを見てください。

ここではXMLなどプログラム上のタグを多用したいのですが、HTMLタグと誤認識されてうまくいきません。なので、「iterateタグ」などと書いているわけです。この日記でのうまいタグの書き方はないのでしょうか。

本日のツッコミ(全2件) [ツッコミを入れる]
_ ただただし (2001-12-21 (Fri) 22:44)

tDiary 1.2系では、「<」を「&lt;」に、「>」を「&gt;」に置換しないといけません。HTMLが書けるゆえの弊害です。1.3系ならプラグインを書けば簡単ですが

_ はんばあぐ (2001-12-22 (Sat) 22:39)

ただただしさんにツッコミいただけるなんて光栄です。早速1.3.1を入れてみました。<br>プラグインに書けばよいということですが、専用のプラグインを自分で作ればということでしょうか。それとも、既存のプラグインがあるのでしょうか。insert.rbがそれっぽいのですが、これはファイル読み込み専用なのでしょうか。Ruby分からなくてすみません。insert.rbが、stream一般なのならうれしいのですが。

[]