Я новичок в тимелеафе ... Может кто-нибудь, пожалуйста, скажите, как значения передаются между контроллерами тимелеафа html и Spring ... Пожалуйста, предложите хорошие учебники для тимелеафа-пружины-мвк ...
В приведенном ниже примере дайте мне знать, как введенное пользователем значение владельца в текстовом поле передается в контроллер Spring, чтобы он проверял и возвращал результаты. И наоборот, как результаты, возвращенные контроллером, используются тимелеафом для отображения результатов .. Как значение LASTNAME известно контроллеру ... как оно передается объекту-владельцу контроллера owner.getLastName () ..
Найти владельцев
<form th:object="${owner}" action="ownersList.html" th:action="@{'/owners.html'}" method="get" class="form-horizontal"
id="search-owner-form">
<fieldset>
<div class="control-group" id="lastName">
<label class="control-label">Last name </label>
<input type="text" th:field="*{lastName}" size="30" maxlength="80"/>
<span class="help-inline" th:errors="*{lastName}">[Errors]</span>
</div>
<div class="form-actions">
<button type="submit">Find Owner</button>
</div>
</fieldset>
</form>
@RequestMapping (value = "/ owner", method = RequestMethod.GET) public String processFindForm (Owner owner, результат BindingResult, модель модели) {
// allow parameterless GET request for /owners to return all records
if (owner.getLastName() == null) {
owner.setLastName(""); // empty string signifies broadest possible search
}
// find owners by last name
Collection<Owner> results = this.clinicService.findOwnerByLastName(owner.getLastName());
if (results.size() < 1) {
// no owners found
result.rejectValue("lastName", "notFound", "not found");
return "owners/findOwners";
}
if (results.size() > 1) {
// multiple owners found
model.addAttribute("selections", results);
return "owners/ownersList";
} else {
// 1 owner found
owner = results.iterator().next();
return "redirect:/owners/" + owner.getId();
}
}