maven(spring mvc)响应数据和结果视图

返回值分类

返回字符串

    @RequestMapping("/teststring")
    public String testString(Model model){
        System.out.println("testString方法执行了。。");
        return "success";
    }

具体的应用场景

jsp需要用到EL表达式

    @RequestMapping("/teststring")
    public String testString(Model model){
        System.out.println("testString方法执行了。。");
        User user = new User();
        user.setUsername("李");
        user.setPassword("2001");
        user.setAge(20);
        model.addAttribute("user",user);
        return "success";
    }

返回值是void

 @RequestMapping("/testvoid")
    public void testVoid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("testVoid方法执行了。。");
        request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
         // 重定向
        response.sendRedirect(request.getContextPath()+"/add2.jsp");  
        response.setCharacterEncoding("UTF-8"); 
        response.setContentType("text/html;charset=UTF-8"); 
        // 直接响应数据        
        response.getWriter().print("你好");        
        return; 
    }

返回值是ModelAndView对象

jsp用到EL表达式

    @RequestMapping("/testModelView")
    public ModelAndView testModelView(){
        ModelAndView mv = new ModelAndView();
        System.out.println("testString方法执行了。。");
        User user = new User();
        user.setUsername("李");
        user.setPassword("2001");
        user.setAge(20);
        mv.addObject("user",user);
        mv.setViewName("success");
        return mv   ;
    } 

SpringMVC框架提供的转发和重定向

  1. forward请求转发
      controller方法返回String类型,想进行请求转发也可以编写成
  2. redirect重定向
      controller方法返回String类型,想进行请求转发也可以编写成
 @RequestMapping("/testForwardOrRedirect")
    public String testForwardOrRedirect(Model model){
        System.out.println("testForwardOrRedirect方法执行了。。");
        //请求转发
        return "forward:/WEB-INF/pages/success.jsp";
        //重定向
        return "redirect:/WEB-INF/pages/success.jsp";
    }

Ajax发送json字符串(前端知识)

首先导入jQuery.min.js
注:jQuery API 中文版 点击此处查看

    <script src="js/jquery.min.js"></script>
    <script>
        $(function(){
            $("#btn").click(function () {
                //alert("Hello ajax");
                $.ajax({
                    url:"user/testAjax",
                    contentType:"application/json;charset=UTF-8",
                    data:'{"username":"呵呵","password":"123e","age":12}',
                    dataType:"json",
                    type:"post",
                    success:function (data) {
                        //data服务器响应的json数据,进行解析
                        alert(data);
                        alert(data.username);
                        alert(data.age);
                    }

                });
            });
        });
    </script>
  • url:一个用来包含发送请求的URL字符串
  • contentType:(默认: “application/x-www-form-urlencoded”) 发送信息至服务器时内容编码类型。默认值适合大多数情况。如果你明确地传递了一个content-type给 $.ajax() 那么他必定会发送给服务器(即使没有数据要发送)
  • data:发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:[“bar1”, “bar2”]} 转换为 “&foo=bar1&foo=bar2”。
  • dataType:预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
  1. “xml”: 返回 XML 文档,可用 jQuery 处理。
  2. “html”: 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。
  3. “script”: 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。’’‘注意:’’'在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
  4. “json”: 返回 JSON 数据 。
  5. “jsonp”: JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
    “text”: 返回纯文本字符串

后端接收方法

    @RequestMapping("/testAjax")
    public @ResponseBody User testAjax(@RequestBody User user){
        System.out.println("testAjax方法执行了。。");
        System.out.println(user);
        return user;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊~小 l i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值