Я пытаюсь получить список выбранных кандидатов для моего контроллера, используя @modelAttribute с их соответствующими идентификатором и рекламой. Я могу правильно представить одного кандидата, но не знаю, как составить список кандидатов через ... Я пытался добавить Список <>, как я показал ниже, но я получаю
ОШИБКА -
SEVERE: Servlet.service () для сервлета [dispatcher] в контексте с путем [/ panel-запросы] выдал исключение [Ошибка обработки запроса; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр класса бина [java.util.List]: указанный класс является интерфейсом] с коренной причиной
org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр класса бина [java.util.List]: указанный класс является интерфейсом
JSP -
<form:form modelAttribute="candidateAddAttribute"
action="/panel-requests/requests/${panelRequestForId.id}/empl" method="post">
<c:forEach items="${candidates}" var="candidates">
<select name="employee" id="employee" disabled="disabled">
<option value="default" selected="selected">${candidates.candidateName}</option>
</select>
<textarea rows="3" cols="40" id="candidateBlurb" name="candidateBlurb"
disabled="disabled">${candidates.candidateBlurb}</textarea>
<textarea rows="2" cols="20" id="candidateCV" name="candidateCV"
disabled="disabled">${candidates.candidateCV}</textarea>
</c:forEach>
<div id="candidateDiv" id="candidateDiv">
<select name="employee" id="employee">
<option value="default" selected="selected">Select Employee</option>
<c:forEach items="${employees}" var="employee">
<option value="${employee.id}" id="${employee.id}">
${employee.employeeName}- ${employee.employeeCV}<
/option>
</c:forEach>
</select>
<textarea rows="3" cols="40" id="candidateBlurb"
name="candidateBlurb">BLURB</textarea>
<div id="employeeCv"></div>
<input type="submit" value="Add Candidate" />
</div>
</form:form>
В приведенной выше форме сначала отображается список сотрудников, а когда пользователь выбирает сотрудника, вводит объявление и нажимает кнопку добавления кандидата, я передаю данные в контроллер.
Контроллер:
@RequestMapping(value = "{id}/empl", method = RequestMethod.POST)
public String getEmployeeDetails(
@ModelAttribute("candidateAddAttribute") @Valid List<Candidate> candidates,
BindingResult result, @PathVariable("id") int requestId, Model model) {
//implementation goes here
}
Как мне реализовать List в этом случае? Заранее спасибо.
ИЗДАННАЯ ЧАСТЬ
Я попытался отправить данные 2 кандидатов, Firebug отправляет их правильно, как -
параметры
КандидатBlurb BLURB сар
КандидатBlurb BLURB Данн
сотрудник 1
сотрудник 2
так что это может быть проблемой в initBinder, который я использую,
binder.registerCustomEditor (Employee.class,
new PropertyEditorSupport () {
public String getAsText () {
return Long.toString (((Employee) getValue ()). getId ());
} * * Тысяча двадцать-один
public void setAsText(final String text) {
Employee employee = Employee.findById(Integer
.parseInt(text));
setValue(employee);
}
});
, который принимает только 1 сотрудника за раз. Это проблема здесь ???