use*_*696 2 java mapping spring-mvc
美好的一天.我在客户端得到了一份表格.在那种形式,我有很多行.每行包含3个字段(日期,ID和金额).客户端可以添加行(借助JavaScript),因此服务器端不知道它将有多少行.
我需要将此表单映射到表示此数据的类.
public class RowStruct
{
private Long id;
private Double amount;
private Date date;
}
public class FormStruct
{
private ArrayList<RowStruct> arrData;
{
Run Code Online (Sandbox Code Playgroud)
所以我需要从我的表单中的数据与FormStruct对象映射.
@RequestMapping("/send")
public ModelAndView getList(HttpServletRequest req,FormStruct formStruct)
{
ModelAndView model = new ModelAndView();
}
Run Code Online (Sandbox Code Playgroud)
有可能,我该怎么办?
mar*_*eig 10
你必须在clientside/html上使用索引.
<input name="arrData[0].id" />
<input name="arrData[0].amount" />
<input name="arrData[0].date" />
Run Code Online (Sandbox Code Playgroud)
每次添加行时都必须增加索引.除非你不删除一行,否则它会像这样工作.
我想你允许你的客户删除行,所以这不可避免地会在索引之间产生差距.但是您不必在客户端修复此问题,在模型到达控制器后,您可以过滤arrData以获取NULL引用.
@RequestMapping("/send")
public ModelAndView getList(HttpServletRequest req,FormStruct formStruct)
{
Iterator<RowStruct> it = formStruct.getArrData().iterator();
while (it.hasNext()) {
if (it.next() == null)
it.remove();
}
ModelAndView model = new ModelAndView();
}
Run Code Online (Sandbox Code Playgroud)