如何在spring中接收动态生成的输入值作为bean

时间:2014-10-31 06:24:36

标签: java html spring spring-mvc

在我的项目中,我动态生成表格中的文本框,如下所示

project Name Date1 Date2 Date3 Date4 Date5 Activity 
java                                        Development Addnew
C++                                         Development Addnew 

我显示一周的表。如果用户点击addnew,我会在用户点击addnew按钮的行下方生成动态文本框。

我的问题是如何将我的spring控制器中的所有文本框值作为bean类。因为我不确定在页面加载和提交中有多少文本框。

任何想法都将非常感谢!!!

2 个答案:

答案 0 :(得分:2)

使用传统的getParameter()方法。我假设您的文本框在使用jquery生成时具有唯一的名称。

在控制器中,

   List<String> requestParameterNames = Collections.list((Enumeration<String>) request.getParameterNames());

for (String parameterName : requestParameterNames) {
    String attributeName = parameterName;
    String attributeValue = request.getParameter(parameterName);
    // will have the text box values 

}

答案 1 :(得分:2)

对于特定答案,您的问题没有足够的细节。不过我会推荐的一般方法。

  • 如果您有像Backbone或Angular这样的框架,请调查其收集工具的使用情况。
  • 编写从所有文本字段构建JSON数组的JavaScript
  • 在Java中定义一个镜像中的每个条目的POJO。
  • 确保您使用Jackson - 在调用控制器之前,将JSON映射到Java对象
  • 在控制器中定义一个采用POJO列表的方法,例如:使用PUT
  • 创建带有/ times / {employeeId}的URL的(列表值)
  • 要读出数据库,请在控制器中添加返回POJO列表的方法,例如:列表值使用GET
  • 获取带有/ times / {employeeId}的URL的(long employeeId)
  • 或者,如果您需要表单为“live”,即“Add new”导致数据库中的行立即使用带有创建,更新和DELETE的REST接口,分别使用POST,PUT和DELETE

我假设你以后需要更新列表,所以我建议一个带有ID的结构可用于CREATE和UPDATE操作,而不仅仅是一个简单的字符串列表,这也将允许更多的字段

public void Foo {
  private String project;
  private String name;
  private long id;
  // getters + setters
}

创建的JSON

[{"project":"java","name":"Development",id:0}, {"project":"C++","name":"Development",id:0}]

JSON用于以后的更新,即带有往返ID的

[{"project":"java","name":"Development",id:100}, {"project":"C++","name":"Development",id:101}]