Spring 3.1を使用しています。
JSP 内の Spring Form にオブジェクトの ArrayList を表示しようとしています。最終的には、ユーザーが行を選択し、バックエンド アクションのボタンを押すことができるように、オブジェクトごとにチェックボックスを用意する必要があります。しかし、Spring フォームを使用して表示するデータを取得できません。私は例外を受け取り続けます:
org.springframework.beans.NotReadablePropertyException: Bean クラス [java.util.ArrayList] の無効なプロパティ 'datafeed[0]': Bean プロパティ 'datafeeds[0]' が読み取れないか、無効な getter メソッドがあります: .... "
縮小されたコードは次のとおりです。
<form:form method="post" commandName="datafeeds">
<table>
<thead>
<tr>
<th>Name</th>
<th>State</th>
</tr>
<tbody>
<c:forEach items="${datafeeds}" var="datafeed" varStatus="vs">
<tr>
<td><form:label path="datafeeds[${vs.index}].name/></td>
<td><form:label path="datafeeds[${vs.index}].state/></td>
</tr>
</c:forEach>
</tbody>
</table>
</form>
次に、コントローラー:
@Controller
public class DataFeedController
{
@Autowired
SomeService service;
@RequestMapping(value="/datafeed")
public String showDataFeed(Model m) {
List<DataFeed> datafeeds = service.list();
m.addAttribute("datafeeds", datafeeds);
return "datafeed";
}
}
具体的には、私の質問は、commandName、forEach ループ内の変数、およびコントローラーからのデータがすべてどのように連携するのかということだと思います。上記のコードを使用して誰かに見せてもらえますか?