zoukankan      html  css  js  c++  java
  • 第四天:SpringMVC返回值的处理(重点)

    SpringMVC返回值的处理

    (一)返回值是字符串

    1、作为视图的名称

    返回值为String(返回值为 String 当前的字符串被视图解析器解析 在字符串的前后使用设定的内容进行拼接 拼接的结果为一个页面的访问路径)

    @RequestMapping("r1")

    public String r1() {

    System.out.println("返回值为字符串");

    return "success";

    }

    2、进行资源跳转

    Servlet跳转为请求转发和重定向分别由requestresponse对象完成

     Request.getRequestDispatcher(“路径”).forward(request,response);

     Response.sendRedirect(“资源路径”);

     

    SpringMVC是对servlet的一个扩展,所以SpringMVC的跳转方式同样也是请求转发和重定向两种方式。

    (1) 重定向

    @RequestMapping("r1")

    public String jump1() {

    System.out.println("返回值为字符串");

    return "redirect:资源路径";

    }

    (2)请求转发

    @RequestMapping("r1")

    public String jump1() {

    System.out.println("返回值为字符串");

    return "forward:资源路径";

    }

    34.0版本的以上的重定向的传值

    SpringMVC 提供了一个工具类 重定向之间可以不使用session可以共享值 使用了工具类: RedirectAttributes实现session之间的共享数据问题。

    第一种方式:

    @RequestMapping("test2")

    public String test2(String name,RedirectAttributes ra) {

    System.out.println("接受表单"+name);

    //如下方法会将我们传递的参数暴露在请求地址中

    ra.addAttribute("newname",name);

     return "redirect:/test3";

    }

    ra.addAttribute("newname",name);(传递值)

    @RequestParam("newname") String newname(接受值)

    这种传递方式会将我们的参数暴露在请求地址中

    第二种方式:

    @RequestMapping("test2")

    public String test2(String name,RedirectAttributes ra) {

    System.out.println("接受表单"+name);

    ra.addFlashAttribute("newname",name);

    return "redirect:/test3";

    }

    ra.addFlashAttribute("newname",name);(传递值)

    @ModelAttribute("newname") String newname(接受值)

        该方法会隐藏传递的参数信息

    (二)无返回值

    控制器的方法可以设定为void 无返回值(这样的方法可以使用servletapi进行转发或者是重定向操作,也可以使用servlet的形式进行异步请求的处理)

    public void r4(){

    异步返回返回数据

    进行跳转

    }

    (三)返回其他类型数据类型

    1、 返回模型视图对象

    控制器的方法的返回值为ModelAndView(返回值为ModelAndView 通过这个对象包装模型数据和视图名称 被视图解析器解析,返回指定名称页面)

    @RequestMapping("r2")

    public ModelAndView r2() {

    System.out.println("跳转过来的请求");

    ModelAndView mav = new ModelAndView();

    //设置视图名称

    mav.setViewName("success");

    //设置模型数据

    mav.addObject("key","forwar跳转");

    return mav;

    }

    2、 返回值被解析成json数据

    以前我们使用的是阿里或者是谷歌的工具,进行json的处理,同时使用response对象响应到前端页面中,SpringMVC提供了一个注解 @ResponseBody 可以将我们的返回值默认的转换成一个json数据,异步的响应到前台。

    @RequestMapping("showInfo")

    public List<Object>showInfo() {

    return 从数据库中获取的数据集合;

    }

  • 相关阅读:
    yaha分词
    可定制的分词库——Yaha(哑哈)分词
    共有11款Python 中文分词库开源软件
    【机器学习实验】使用朴素贝叶斯进行文本的分类
    numpy.ones_like(a, dtype=None, order='K', subok=True)返回和原矩阵一样形状的1矩阵
    numpy.zeros(shape, dtype=float, order='C')
    numpy.ones(shape, dtype=None, order='C')
    备忘录
    关于决策平面
    关于surf显示立体图,可视化分析数据
  • 原文地址:https://www.cnblogs.com/masterhxh/p/13853612.html
Copyright © 2011-2022 走看看