我有一个JSP,允许用户动态创建其他表单字段来创建多个对象。也许我想让用户在提交发票表单时能够提交任意数量的订单项。
如何创建一个Struts 2 Action,它将能够接收一个ArrayList,其中填充了从这些动态生成的字段创建的对象。
答案 0 :(得分:1)
您应该阅读Tabular input guide。
答案 1 :(得分:1)
According to the (ever-poor) documentation,它迫使你试图推断你想要的信息,而不仅仅是权威地告诉你(假设你真的在询问Struts的内置类型转换),你需要表单字段被命名为......
someList.makeNew(0).someField1
someList.makeNew(0).someField2
...
someList.makeNew(1).someField1
someList.makeNew(1).someField1
...
...然后你需要set up an ActionClassName-conversion.properties file让类型转换器知道如何处理以“someList”开头的字段的类型转换。
我自己实际尝试过的唯一一次,我无法使用Lists并最终不得不使用地图。
这是一篇关于modifying a Map of objects using type conversion的有用博客文章 - 我没有太多运气找到有关文档提及的“makeNew”字段名称格式的有用信息,但这可能有助于您入门。