Обработка нескольких <input>с одним и тем же именем в Spring-MVC - PullRequest
6 голосов
/ 09 февраля 2011

Пожалуйста, посмотрите на коды ниже. Отображаются четыре текстовых поля.

Если я введу «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>

Ответы [ 2 ]

5 голосов
/ 09 февраля 2011

Это логично. Несколько строк могут быть представлены как одна String через запятую. Несколько Date объектов не могут быть представлены как один Date объект.

Вместо этого можно попробовать String[] и Date[].

2 голосов
/ 09 февраля 2011
private List<Date> date= new ArrayList<Date>();

    public List<Date> getDate() {
        return date;
    }
    public void setDate(List<Date> date) {
        this.date= date;
    }

Это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...