Response
响应方式
页面跳转设定
当处理器方法的返回值类型为String类型,即可通过具体的返回值设置方法的页面
页面跳转方式
@RequestMapping ( "/showPage1" )
public String showPage1 ( ) {
System. out. println ( "user mvc controller is running ..." ) ;
return "forward:page.jsp" ;
}
@RequestMapping ( "/showPage2" )
public String showPage2 ( ) {
System. out. println ( "user mvc controller is running ..." ) ;
return "redirect:page.jsp" ;
}
页面访问快捷设定
暂时页面的保存位置通常固定,且结构显示,可以设定通用的访问路径,简化页面配置格式
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
//路径前缀
<property name="prefix" value="/WEB-INF/pages/" />
//路径后缀
<property name="suffix" value=".jsp" />
</bean>
public String showPage3 ( ) {
return "page" ;
}
页面访问快捷设定缺省页面
如果未设定返回值,使用void类型,则默认使用访问路径为跳转页面
携带数据页面跳转设定
方式一:使用HttpServletRequest类型形参进行数据传递(尽量少用)
@RequestMapping ( "/showPageAndData1" )
public String showPageAndData1 ( HttpServletRequest request) {
request. setAttribute ( "name" , "xm" ) ;
return "page" ;
}
@RequestMapping ( "/showPageAndData2" )
public String showPageAndData2 ( Model model) {
model. addAttribute ( "name" , "xm" ) ;
Book book = new Book ( ) ;
book. setName ( "SpringMVC入门实战" ) ;
book. setPrice ( 66.6d ) ;
model. addAttribute ( "book" , book) ;
return "page" ;
}
方式三:使用ModelAndView类型形参进行数据传递,将该对象作为返回值传递给调用者
@RequestMapping ( "/showPageAndData3" )
public ModelAndView showPageAndData3 ( ModelAndView modelAndView) {
modelAndView. addObject ( "name" , "xm666" ) ;
Book book = new Book ( ) ;
book. setName ( "SpringMVC " ) ;
book. setPrice ( 88.8d ) ;
modelAndView. addObject ( "book" , book) ;
modelAndView. setViewName ( "page" ) ;
return modelAndView;
}
String:仅封装跳转页面的基本信息,底层由ModelAndView实现 Model:仅封装数据 ModelAndView:封装数据并封装视图,包含Model和View两个对象
返回数据
@RequestMapping ( "/showData1" )
public void showData1 ( HttpServletResponse response) throws IOException {
response. getWriter ( ) . print ( "message" ) ;
}
@RequestMapping ( "/showData2" )
@ResponseBody
public String showData2 ( ) {
return "message" ;
}
返回JSON数据
方式一:基于response返回数据的简化格式,返回JSON数据
@RequestMapping ( "/showData3" )
@ResponseBody
public String showData3 ( ) throws JsonProcessingException {
ObjectMapper om = new ObjectMapper ( ) ;
Book book = new Book ( ) ;
book. setName ( "SpringMVC入门实战" ) ;
book. setPrice ( 88.8d ) ;
return om. writeValueAsString ( book) ;
}
返回JSON数据(对象)
方式二:使用SpringMVC提供的消息类型转换器将对象与集合数据自动转换为JSON数据
@RequestMapping ( "/showData4" )
@ResponseBody
public Book showData4 ( ) {
Book book = new Book ( ) ;
book. setName ( "SpringMVC入门实战" ) ;
book. setPrice ( 88.8d ) ;
return book;
}
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" >
<property name="messageConverters" >
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
</list>
</property>
</bean>
返回JSON数据(集合)
@RequestMapping ( "/showData5" )
@ResponseBody
public List< Book> showData5 ( ) {
Book book1 = new Book ( ) ;
book1. setName ( "SpringMVC入门实战" ) ;
book1. setPrice ( 88.8d ) ;
Book book2 = new Book ( ) ;
book2. setName ( "SpringMVC应用" ) ;
book2. setPrice ( 166.6d ) ;
ArrayList< Book> books = new ArrayList < Book> ( ) ;
books. add ( book1) ;
books. add ( book2) ;
return books;
}
返回JSON数据
方式三: 使用SpringMVC注解驱动简化配置