Итак, когда вы переходите к / назначению, вызывается действие get (), и тогда представление будет get.jsp (если вы используете .jsp и если вы отображаете имена действий в представления)?
А как насчет getnewform? Вроде бы возвращать объект? Это в основном передается в поле зрения?
@Controller @RequestMapping("/appointments") public class AppointmentsController {
private final AppointmentBook appointmentBook;
@Autowired
public AppointmentsController(AppointmentBook appointmentBook) {
this.appointmentBook = appointmentBook;
}
@RequestMapping(method = RequestMethod.GET)
public Map<String, Appointment> get() {
return appointmentBook.getAppointmentsForToday();
}
@RequestMapping(value="/{day}", method = RequestMethod.GET)
public Map<String, Appointment> getForDay(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date day, Model model) {
return appointmentBook.getAppointmentsForDay(day);
}
@RequestMapping(value="/new", method = RequestMethod.GET)
public AppointmentForm getNewForm() {
return new AppointmentForm();
}
@RequestMapping(method = RequestMethod.POST)
public String add(@Valid AppointmentForm appointment, BindingResult result) {
if (result.hasErrors()) {
return "appointments/new";
}
appointmentBook.addAppointment(appointment);
return "redirect:/appointments";
} }
В этом примере @RequestMapping используется в нескольких местах. Первое использование происходит на уровне типа (класса), который указывает, что все методы обработки на этом контроллере относятся к пути / назначений. Метод get () имеет еще одно уточнение @RequestMapping: он принимает только запросы GET, что означает, что HTTP GET для / назначений вызывает этот метод. Функция post () имеет аналогичное уточнение, а getNewForm () объединяет определение метода и пути HTTP в одно, так что запросы GET для назначений / новых обрабатываются этим методом.