So I'm trying to save tables in struts. I'm hitting a strange error when setting values of Lists of Lists, which causes any value saved to be contained in brackets. The params interceptor doesn't log these brackets so its probably an error in the setting function (OGNL?). I couldn't find this behavior documented anywhere. I know Multi-dimensional arrays work fine (String[][] instead of List<List<String>>). Anyone know a workaround for lists of lists (example below)?
Also, I couldn't find a way to make struts form tags work inside iterators. Does anyone know of a plugin or extension that supports this? I have a workaround, but its slower to duplicate the struts checkbox and multiselect functionality by hand. Thanks, Don #table.jsp <form action="someAction"> <table> <s:iterator value="listOfLists" status="rowStatus"> <tr> <s:iterator status="columnStatus"> <td> <input type="text" name="listOfLists[<s:property value="#rowStatus.index"/>][<s:property value="#columnStatus.index"/>]" value="<s:property/>"> </td> </s:iterator> </tr> </s:iterator> </table> </form> #action public class SomeAction { private List<List<String>> listOfLists; public List<List<String>> getListOfLists() { return table; } public SomeAction() { if (listOfLists == null) { listOfLists = new ArrayList<List<String>>(); for (int i = 0;i<10;i++) { listOfLists.add(new ArrayList<String>()); for (int j = 0;j<10;j++) listOfLists.get(i).add("(" + i + "," + j + ")"); } } } } #spring <bean id="someAction" class="SomeAction" scope="singleton"/> #struts <action name="someAction" class="someAction"> <result>table.jsp</result> </action>