Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring表单到数组的映射_Java_Spring Mvc_Mapping - Fatal编程技术网

Java Spring表单到数组的映射

Java Spring表单到数组的映射,java,spring-mvc,mapping,Java,Spring Mvc,Mapping,你好。 我在客户端有一张表格。在这种形式下,我得到了很多行。每行包含3个字段(日期、id和金额)。客户端可以添加行(在JavaScript的帮助下),这样服务器端就不知道要添加多少行 我需要将这个表单映射到类,表示这个数据 public class RowStruct { private Long id; private Double amount; private Date date; } public class FormStruct { private A

你好。 我在客户端有一张表格。在这种形式下,我得到了很多行。每行包含3个字段(日期、id和金额)。客户端可以添加行(在JavaScript的帮助下),这样服务器端就不知道要添加多少行

我需要将这个表单映射到类,表示这个数据

public class RowStruct
{
    private Long id;
    private Double amount;
    private Date date;

}
public class FormStruct
{
    private ArrayList<RowStruct> arrData;
{

有可能吗?我该怎么做?

您可以要求客户端发送数据,并使用将其转换为Java对象是的,有可能

在html中可以使用索引:

<input id='arrData[0].id' ...

您必须在clientside/html上使用索引

<input name="arrData[0].id" />
<input name="arrData[0].amount" />
<input name="arrData[0].date" />

每次添加一行时,都必须增加索引。 除非您不删除一行,否则它将像这样工作

我认为您允许客户机删除行,因此这不可避免地会在索引之间产生间隙。但是您不必在客户端解决这个问题,在模型到达控制器后,您可以过滤arrData以查找空引用

@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();

}
@RequestMapping(“/send”)
公共模型和视图获取列表(HttpServletRequest请求,FormStruct FormStruct)
{
迭代器it=formStruct.getArrData().Iterator();
while(it.hasNext()){
if(it.next()==null)
it.remove();
}
ModelAndView模型=新的ModelAndView();
}

好的。这是一个解决方案。如何从表单创建JSON?这是一种只使用表单字段名称自动完成的方法,还是我需要获取表单的行并手动将它们添加到JSON中?这是一个解决方案,但它不是必需的,因为spring能够绑定到集合!
<input name="arrData[0].id" />
<input name="arrData[0].amount" />
<input name="arrData[0].date" />
@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();

}