Как использовать один объект внутри объекта команды для пружинной формы с помощью контроллера аннотаций? - PullRequest
0 голосов
/ 23 декабря 2011

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

public class ManufacturerDO {
int manufacturerID;
String manufacturerName,manufacturerAddress;
}

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

Я пробовал использовать следующее:

<form:select  path="productManufacturer.manufacturerID">
        <c:forEach var="manufacturer" items="${manufacturerList}">
            <form:option value="${manufacturer.manufacturerName}">
                <c:out value="${manufacturer.manufacturerName}" />
            </form:option>
        </c:forEach>
</form:select>

Но получаю следующее исключение: Недопустимое свойство productManufacturer класса бобов [com.global.onlineShop.ProductDO]: значение вложенного свойства productManufacturer равно нулю.

Заранее спасибо

1 Ответ

1 голос
/ 23 декабря 2011

1) Вы должны передать экземпляр объекта команды представлению.Я делаю это следующим образом:

public ModelAndView myFunc(ModelAndView model) {
    /* .... */
    ManufacturerDO commandObject = new ManufacturerDO;
    model.addObject("productManufacturer", commandObject);
    return model;
}

(Однако я советую использовать автопроводку, а не создавать новый экземпляр в действии контроллера)

2) В форме тега JSTL ссылка на commandObjectпо предоставленному ключу:

<form:form method="post" commandName="productManufacturer">

3) Когда вы предоставляете объект команды в теге формы JSTL, вы можете пропустить имя commandObject в атрибуте 'path' во всем теге JSTL элемента формы, поэтому давайте напишем:

<form:select path="manufacturerID">

4) И конечно - не забывайте о методах получения и установки в классе командного объекта.

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