У меня есть следующие двунаправленные отношения: Курс может иметь несколько назначений.
При попытке выполнить следующее я получаю исключение Null Pointer:
У меня есть следующие методы в CourseController.java
@RequestMapping(value="view/{id}/assignment/create")
public ModelAndView createAssignment(@PathVariable("id") String id) throws Exception {
ModelAndView modelAndView = new ModelAndView("course/assignment/create");
Assignment assignment = new Assignment();
assignment.setCourse(this.courseManager.getCourse(id));
//System.out.println(assignment.getCourse().getName()); This prints the course name correctly
modelAndView.addObject("assignment", assignment);
return modelAndView;
}
This is the jsp:
<form:form action="/cbass/assignment/check" method="POST" commandName="assignment">
<form:errors path="*" cssClass="errorblock" element="div"/>
Course Name: ${assignment.course.name}
<table>
<tr>
<td>Name : </td>
<td><form:input path="name" /></td>
<td><form:errors path="name" cssClass="error" /></td>
</tr>
<tr>
<td colspan="3"><input type="submit" /></td>
</tr>
</table>
И это то место, куда отправляется запрос от JSP.
@RequestMapping(value = "check", method = RequestMethod.POST)
public String processSubmit(
@ModelAttribute("assignment") Assignment assignment,
BindingResult result, SessionStatus status) {
assignmentValidator.validate(assignment, result);
System.out.println(assignment.getCourse().getName());
if (result.hasErrors()) {
//if validator failed
return "course/assignment/create";
} else {
status.setComplete();
//form success
System.out.println("Hello"+assignment.getCourse().getName());
this.assignmentManager.create(assignment);
return "course/assignment/view";//+assignment.getId();
}
}
Хотя я могу правильно увидеть название курса на странице JSP,
Course Name: ${assignment.course.name}
Я все еще получаю исключение пустого указателя, когда пытаюсь выполнить это:
assignment.getCourse().getName()
Я новичок в Spring и EclipseLink JPA.Пожалуйста, помогите.