所以当你去/约会时调用get()动作,那么视图就是get.jsp(假设你正在使用.jsp,并假设你正在映射动作名称视图)?哪个视图将被解析,来自spring文档的代码
那么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请求由该方法处理。
因此,对新的AppointmentForm()的调用将解析为视图,并将AppointmentForm作为属性/模型传递给视图? – Blankman 2010-03-17 16:46:09
@Blankman:正确 – skaffman 2010-03-17 23:37:42