2

struts 2 フォームを使用してマップを更新しようとしています。マップを反復すると、キーと値のペアが正しく表示されますが、フォームを送信すると、マップに値が入力されません。キーは、 のような文字を含む文字列です。と /。次に例を示します。

Map<String, String> map = new HashMap<String, String>();
map.put("utilities.student_info.note", "note");

<s:iterator value="map" var="property" status="status">
  <s:property value="%{key}"/>
  <s:textarea name="map[%{key}]" value="%{value}" rows="5" cols="60"/>
</s:iterator>

次のような引用符を使用してみました: name="map['%{key}']"、それでも機能しません。ParamsInterceptorログから、パラメータが正しく設定されていることがわかります: map[utilities.student_info.note] => [note]. しかし、アクション面ではマップが空っぽ。を使用するname="map[%{#attr.status.index}]"と、マップに入力されますが、キーは(map[0] => [note])正しくないインデックスです。

任意の提案をいただければ幸いです。ありがとう。

4

1 に答える 1

0

使用している Struts2 のバージョンによって異なりますが、2.3.8map['utilities.student_info.note']では受け入れられないパラメーターです。試してみるmap['utilities_student_info_note']とうまくいくはずです。キーは単語文字のみで構成する必要があります。

于 2013-10-31T22:58:51.907 に答える