Как сохранить 2 входа в разные ModelAttributes? - PullRequest
0 голосов
/ 28 января 2019

У меня есть класс Person и ModelAttribute "nameList", который получает список имен существующих людей из базы данных:

@ModelAttribute("nameList")
public List<String> getNames() {
    return databaseModel.getNamesList();
}

В jsp у меня есть форма, в которой я хочу иметь 2 выпадающих списка с именамидля выбора:

    <f:form class="form-inline" action="setRelative" modelAttribute="person1"
        modelAttribute="person2" >

        <label>Person:</label>
        <f:select cssStyle="width:150px" path="name" items="${nameList}"
            multiple="false">
        </f:select>
        <f:errors path="name" class="alert alert-danger"></f:errors>

        <f:label path="name">Relative:</f:label>
        <f:select cssStyle="width:150px" path="name" items="${nameList}"
            multiple="false">
        </f:select>
        <f:errors path="name" class="alert alert-danger"></f:errors>

        <label>Person's Relation to Relative:</label>           
        <f:select cssStyle="width:150px" path="relations"
            items="${relationList}" multiple="false">

        </f:select>
        <button class="btn btn-primary" type="submit">Set
            relative</button>

    </f:form>

Я дважды использовал «modelAttribute» в форме, и это выдает следующую ошибку: «Полные имена атрибутов должны быть уникальными внутри элемента» .Но без этого у меня не может быть разных имен, выбранных из списка.Это результат формы с использованием ModelAttribute один раз: enter image description here

Я, конечно, могу использовать простое поле ввода, а затем использовать его в контроллере, но есть ли способ справиться снесколько ModelAttributes одновременно?

1 Ответ

0 голосов
/ 28 января 2019

Проблема не в атрибуте модели, а в том, что path='name' используется дважды.

Spring не может понять, какое значение использовать для пути name, вы должны либо изменить его на что-то вроде path='name1' и path='name2' (и внесите соответствующие изменения в вашу модель) или если вы используете имена в качестве имени массива или списка, например path='name[0]' и path='name[1]'

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

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