как значения передаются между тимелистом и пружинным контроллером, наоборот

Я новичок в тимелеафе ... Может кто-нибудь, пожалуйста, скажите, как значения передаются между контроллерами тимелеафа 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();
    }
}

person user1611575    schedule 05.06.2013    source источник


Ответы (1)


Предположим, у вас есть метод контроллера, например:

void method-name(Owner owner){
    // ...
}

При нажатии кнопки отправки значения автоматически устанавливаются для класса домена, перед этим создайте новый метод и установите атрибут модели объекта model.addAttribute("owner",new Owner);

person jijesh Aj    schedule 05.06.2013
comment
Атрибут модели предназначен только для тега th: object или необходимо определить атрибут модели для каждой переменной, объявленной в тимелеафе ... - person user1611575; 05.06.2013
comment
нет, это не только для th: object, вы можете указать список, значение чего угодно. - person jijesh Aj; 05.06.2013