ととhiddenフィールド

今さらって気もしますが、書いときます(←さっと書けることが他にない?)。
<html:select> and <html:options>と、<html:multibox>タグを使った例です。
リクエスト、またはセッションスコープに、前のアクションで設定するなどして用意されているprefecturesとpeopertiesというList(か何か、Collection)があるとします。 JSPでそれらのCollectionを取り出すには、以下のような方法があります。


//プルダウンメニュー
都道府県:
<html:select property="prefecture" >
<html:option value="選択してください"/>
<html:options name="prefectures" />
</html:select>
//こんな感じですね。
//チェックボックス <c:forEach items='${properties}' var='item'> <html:multibox property="properties"> ${item} </html:multibox> ${item} </c:forEach>
できあがったHTMLソースはこんな感じになります。
都道府県:
<select name="prefecture">
    <option value="選択してください">選択してください</option>
    <option value="北海道">北海道
    <option value="東京都">東京都
    <option value="大阪府">大阪府
    <option value="...">...
</select>

<input type="checkbox" name="properties" value="A">A
<input type="checkbox" name="properties" value="B">B
<input type="checkbox" name="properties" value="C">C
...
複数のページにまたがってフォームを処理する場合など、セッションを使わずにリクエストにおいて、hiddenフィールドを使う方法がよく使われますね。 その時普通に<html:hidden property="prefecture"/>とやると、レファランスが保存されてバリューが保存されません。なので、ループの中で一つずつセットしてやる必要があります。
<c:forEach items='${propertyForm.properties}' var='prop'>
    ${prop},
    <html:hidden property="properties" value="${prop}"/>
</c:forEach>
こんな感じで。