I am using Spring 3.1.
I am trying to display an ArrayList of objects in a Spring Form within a JSP. Eventually I need to have a checkbox for each object so that the user may select a row and then press a button for some back-end action. But I can't get the data to display using a Spring form. I keep receiving an exception:
org.springframework.beans.NotReadablePropertyExcep tion: Invalid property 'datafeed[0]' of bean class [java.util.ArrayList]: Bean property 'datafeeds[0]' is not readable or has an invalid getter method: .... "
Here is the scaled down code:
<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>
Then the Controller:
@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";
}
}
Specifically I guess my question is how does commandName, the variables in the forEach loop and the data from the Controller all work together? Can anybody show me using the above code?