packagecom.imooc.controller;importcom.imooc.dao.CourseDao;importcom.imooc.dao.PhoneDao;import com.imooc.entity.*;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.servlet.ModelAndView;importjavax.annotation.Resource;
@Controllerpublic classDataBindController {
@Resource(name= "courseDao")privateCourseDao courseDao;
@Resource(name= "phoneDao")privatePhoneDao phoneDao;/*基本数据类型的绑定*/@RequestMapping(value= "/baseType")//直接将业务方法返回值返回给客户端,而不进行JSP页面的跳转
@ResponseBodypublic String baseType(@RequestParam(value = "id") int id){ //将url请求中的参数id赋值给业务方法的形参id
return "id:"+id;
}/*包装类的绑定*/@RequestMapping(value= "/packageType")//直接将业务方法返回值返回给客户端,而不进行JSP页面的跳转
@ResponseBodypublic String packageType(@RequestParam(value = "id") Integer id){ //将url请求中的参数id赋值给业务方法的形参id
return "id:"+id;
}/*数组类型的绑定*/
//produces = "text/html;charset=UTF-8,解决url中传递中文时的中文乱码问题
@RequestMapping(value = "/arrayType",produces = "text/html;charset=UTF-8")
@ResponseBodypublicString arrayType(String[] name){
StringBuffer stringBuffer=newStringBuffer();for(String s:name
) {
stringBuffer.append(s).append(" ");
}returnstringBuffer.toString();
}/*对象类型的绑定*/@RequestMapping("/pojoType")publicModelAndView pojoType(Course course){
courseDao.add(course);
ModelAndView modelAndView=newModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("courses",courseDao.getAll());returnmodelAndView;
}/*List类型的绑定,不能直接绑定到list集合本身,需要借助一个包装的对象,该对象有list属性*/@RequestMapping("/listType")publicModelAndView listType(CourseList courseList){for(Course c:courseList.getCourses()
) {
courseDao.add(c);
}
ModelAndView modelAndView=newModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("courses",courseDao.getAll());returnmodelAndView;
}/*Map类型的绑定,自动将要传递的多个对象的属性,先封装成几个course对象,在将这几个对象封装放入成一个courseMap对象*/@RequestMapping("/mapType")publicModelAndView mapType(CourseMap courseMap){for(String key:courseMap.getCourses().keySet()
) {
Course course=courseMap.getCourses().get(key);
courseDao.add(course);
}
ModelAndView modelAndView=newModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("courses",courseDao.getAll());returnmodelAndView;
}/*Set类型的绑定*/@RequestMapping("/setType")publicModelAndView setType(CourseSet courseSet){for(Course c :courseSet.getCourses()
) {
courseDao.add(c);
}
ModelAndView modelAndView=newModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("courses",courseDao.getAll());returnmodelAndView;
}/*json类型的绑定*/@RequestMapping(value= "/jsonType")
@ResponseBodypublicCourse jsonType(@RequestBody Course course){
course.setPrice(course.getPrice()+100);returncourse;
}
@RequestMapping(value= "/phoneAdd",produces = "text/html;charset=UTF-8")publicModelAndView phoneAdd(PhoneMap phoneMap){for(String key:phoneMap.getPhones().keySet()
) {
Phone phone=phoneMap.getPhones().get(key);
phoneDao.add(phone);
}
ModelAndView modelAndView=newModelAndView();
modelAndView.addObject("phones",phoneDao.getAll());
modelAndView.setViewName("show");returnmodelAndView;
}
}