SpringMVC响应数据

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"; 
}
  • 方式二:使用Model类型形参进行数据传递
@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两个对象

返回数据

  • 方式一:使用response对象完成数据返回
@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注解驱动简化配置
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值