【问题标题】:Handling multiple <input>s with the same name in spring-mvc在 spring-mvc 中处理多个具有相同名称的 <input>
【发布时间】:2011-02-09 15:53:30
【问题描述】:

请查看下面的代码。显示四个文本框。

如果我在以前的文本框中输入“1”和“2”,它们会按照我的预期绑定为逗号分隔的“1,2”。

但是,如果我在其余两个框中输入“2001/01/01”和“2001/01/02”,则绑定“2001/01/01”。 “2001/01/01”只是令人惊讶地绑定。第一个参数似乎优先绑定。

我想知道关于它的规范(HTTP 或 SpringMVC 或 ...?)在哪里定义,以便深入准确地理解。有人可以帮我吗?

Form
public class SampleForm {

    private String name;

    private Date date;

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

JSP
<form:form modelAttribute="form" method="post">
    <form:input path="name" />
    <form:input path="name" />
    <form:input path="date" />
    <form:input path="date" />
    <p>
        <input type="submit" name="register" value="register" />
    </p>
</form:form>

【问题讨论】:

    标签: html spring http jsp spring-mvc


    【解决方案1】:

    这是合乎逻辑的。多个字符串可以用逗号分隔的一个String 表示。多个Date 对象不能表示为一个Date 对象。

    您可以尝试改用String[]Date[]

    【讨论】:

      【解决方案2】:
      private List<Date> date= new ArrayList<Date>();
      
          public List<Date> getDate() {
              return date;
          }
          public void setDate(List<Date> date) {
              this.date= date;
          }
      

      它会解决你的问题。

      【讨论】:

        猜你喜欢
        • 2016-05-17
        • 1970-01-01
        • 2016-03-06
        • 2021-01-10
        • 1970-01-01
        • 2015-01-02
        • 2012-05-06
        • 1970-01-01
        • 2021-05-01
        相关资源
        最近更新 更多