Я довольно новичок в Spring MVC и уже прочитал несколько уроков. В настоящее время я пытаюсь расширить пример приложения, которое я нашел здесь Spring MVC 5 от javaguides . На данный момент у меня появилась страница jsp, которая отображает список счетов и хотела бы отфильтровать счета по дате (start- / enddate). Это работает прямо сейчас, но в настоящее время я застрял, корректно обновляя объект фильтра.
Что я сделал
- Я создал POJO
DateFilter
с двумя Date
свойствами
- Я объявил bean
invoiceFilter
в своем сервлете весеннего диспетчера, который вызывает метод init для установки даты начала и окончания для некоторых значений по умолчанию
- Я автоматически связал этот bean-компонент в моем контроллере с переменной-членом
invoiceFilter
- Я передаю фильтр как атрибут модели в методе контроллера, который показывает список счетов
- Я добавил форму для ввода начала и конца на моей странице jsp
- если кнопка нажата, форма вызывает новый метод
changeFilter
, который присваивает новую начальную и конечную дату моей переменной члена контроллера invoiceFilter
Вопрос / проблема
Я не думаю, что шаг 6 является правильным способом сделать это, и я хотел бы услышать мнение людей с большим опытом Spring о том, каков типичный подход для этого требования. В идеале я хотел бы заархивировать, что объект invoiceFilter
моего контроллера обновляется непосредственно стороной JSP вместо использования дополнительного метода, подобного этому:
@PostMapping("/changeFilter")
public String saveInvoic(@ModelAttribute("invoiceFilter") DateFilter invoiceFilter) {
this.invoiceFilter = invoiceFilter;
return "redirect:/invoice/list";
}
Есть ли правильный способ сделать это?
Attachment
Это соответствующий код JSP:
<form:form action="changeFilter" cssClass="form-horizontal"
method="post" modelAttribute="invoiceFilter">
<div>
<label for="startDate">Start-Date</label>
<form:input path="startDate" />
<label for="endDate">End-Date</label>
<form:input path="endDate" />
</div>
<div>
<div>
<form:button>Submit</form:button>
</div>
</div>
</form:form>