SpringMVC 数据响应

页面跳转

返回字符串形式

  • 直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。
@RequestMapping("/quick")
public String quickMethod(){ 
    return "index";
}

<property name="prefix" value="/WEB-INF/views/" />
<property name=“suffix” value=".jsp" />

经过视图解析器(存疑?)的处理最终地址变为

: /WEB-INF/views/index.jsp

返回带有前缀的字符串:

转发:forward:/index

重定向:redirect:/index

返回ModelAndView对象

@RequestMapping("/quick2")
public ModelAndView quickMethod2(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("redirect:index.jsp");
    return modelAndView;
}


@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    return modelAndView;
}

向request域存储数据

在进行转发时,往往要向request域中存储数据,在jsp页面中显示,那么Controller中怎样向request域中存储数据呢?

1.通过SpringMVC框架注入的request对象setAttribute()方法设置

@RequestMapping("/quick")
public String quickMethod(HttpServletRequest request){
    request.setAttribute("name","zhangsan");
   return "index";
}

2.通过ModelAndView的addObject()方法设置

@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    modelAndView.addObject("name","lisi");
    return modelAndView;
}

回写数据

直接返回字符串

  • 通过jackson转换json格式字符串,回写字符串
@RequestMapping("/quick7")
@ResponseBody  //通过此注解告知SpringMVC框架,方法返回的字符串不是跳转是直接在http响应体中返回。
public String quickMethod7() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    ObjectMapper objectMapper = new ObjectMapper();
    String s = objectMapper.writeValueAsString(user);
    return s;
}

返回对象或集合

@RequestMapping("/quick8")
@ResponseBody
public User quickMethod8() throws IOException {
    User user = new User();              user.setUsername("zhangsan");
    user.setAge(18);
    return user;
}

在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置。

<!--mvc的注解驱动-->
<mvc:annotation-driven/>

在 SpringMVC 的各个组件中,处理器映射器处理器适配器视图解析器称为 SpringMVC 的三大组件。

使用<mvc:annotation-driven>自动加载 RequestMappingHandlerMapping(处理映射器)和RequestMappingHandlerAdapter( 处 理 适 配 器 ),可用在Spring-xml.xml配置文件中使用

<mvc:annotation-driven>替代注解处理器适配器的配置。

同时使用<mvc:annotation-driven>默认底层就会集成jackson进行对象或集合的json格式字符串的转换。

posted @ 2021-08-24 10:07  飞飞很要强  阅读(39)  评论(0编辑  收藏  举报