У меня есть Map<Course, Role> courses
, принадлежащий объекту команды user
, и я хочу выбрать роль из roles
[enum array] = Role.values
для каждого курса в наборе ключей. Я заполняю записи всеми желаемыми курсами и ролью по умолчанию и помещаю это в пользователя в модели. Ниже моя форма, но я не могу понять, как обратиться к ключу (который является "курсом") для карты
<form:form method="POST" commandName="user">
<table>
<tr>
<td>User Name:</td>
<td><form:input path="name" /></td>
</tr>
<c:forEach var="course" items="${courseChoices}">
<tr>
<form:radiobuttons path="courses['${course}']" items="${roles}"/>
</tr>
</c:forEach>
</table>
<input type="submit" value="save changes">
<form:errors path="*" />
</form:form>
У меня есть свойство редактора, связанное с преобразованием курса в строку и обратно, которое просто использует идентификатор объекта.
Я получаю
InvalidPropertyException:
Недопустимое свойство 'courses [com.example.app.Course@7]' класса бобов [com.example.app.User]:
Неверный индекс в пути свойства 'courses [com.example.app.Course@7]';
вложенным исключением является org.springframework.beans.TypeMismatchException:
Не удалось преобразовать значение свойства типа «java.lang.String» в требуемый тип «com.example.app.Course» для свойства «null»;
вложенным исключением является java.lang.NumberFormatException: для входной строки: "com.example.app.Course@7"
Я не знаю, что такое NULL, потому что я могу видеть Курс с идентификатором 7 в моей базе данных.
По сути, что такое оценка атрибута пути и как он понимает контекст jsp? Это язык выражения Spring? Я искал ресурсы, чтобы выяснить, как выбрать значения для ключей моей карты из моего набора ролей, но я не нашел много.