Использование тегаAttribute = "" и тега path = "" не имеет для меня смысла, когда есть только одна строка, которая должна быть передана к контроллеру. Однако, когда форма имеет несколько текстовых полей, на самом деле имеет смысл иметь для них объектную модель. Таким образом, тег modelAttribute представляет объект, т. Е. «Employee», а теги пути представляют поля, то есть «firstName», «lastName», «зарплата».Spring JSP: проблема с пружинной формой с modelAttribute = "" и path = ""
Что вы будете делать, если хотите только одну строку? Мне не нужно было создавать класс «Ключ» с полем «ключ» с getKey() и setKey() или любым из этого безумия, чтобы передать строку методу контроллера, правильно? Какова конвенция в этом случае?
Если я просто model.addAttribute("key", "")
при загрузке страницы, я получаю:
org.springframework.beans.NotReadablePropertyException: Invalid property 'key'
of bean class [java.lang.String]: Bean property 'key' is not readable or has an invalid
getter method: Does the return type of the getter match the parameter type of the setter?
Если я удаляю modelAttribute = "ключ" тег я получаю:
java.lang.IllegalStateException: Neither BindingResult nor plain target object for
bean name 'command' available as request attribute
JSP
<form:form method="post" action="myAction" modelAttribute="key">
<td>
<form:input path="key" value="${myValue}"/>
<input type="submit" value="Submit"/>
</td>
</form:form>
Контролер
@RequestMapping(value = "/myAction", method = RequestMethod.POST)
public String handleMyActionRequest(@ModelAttribute("key") String key, Model model) {
// do stuff with key string.
return HOME_PAGE_REDIRECT;
}
Что такое соглашение для передачи одной строки к методу контроллера при отправке формы, без того, чтобы создать новый класс?