springmvc响应数据和结果视图

  • 返回字符串
    controller方法返回的字符串可以指定视图名称,根据视图解析器解析为物理视图地址。
    /*** 
     * @Description 返回值String
     * @Param: []
     * @return: java.lang.String
     */
    @RequestMapping(path = "/p0")
    public String test01() {
        System.out.println("我执行了......");
        //指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp
        return "success";
    }
  • 返回值void
    当controller返回void的时候,会报404错误,页面找不到。这是因为默认去找以方法名称为视图名称的视图所以找不到报404错误。如果想跳到其它页面我们可以采用转发或者重定向来实现。
     /***
     * @Description 返回值void
     * @Param: []
     * @return: java.lang.String
     */
    @RequestMapping(path = "/p1")
    public void test02(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("我执行了......");
        //请求转发
        //request.getRequestDispatcher("/WEB-INF/views/success.jsp").forward(request,response);
        //请求转发重定向
        response.sendRedirect(request.getContextPath() + "/aaa.jsp");
        //response.setCharacterEncoding("UTF-8");
        //response.setContentType("text/html;charset=UTF-8");
        //直接响应数据
        //response.getWriter().println("你好");
        return;
    }
  • 返回值ModelAndView对象
    该对象是spring提供的,用来向域对象存值和视图跳转
   /*** 
    * @Description 返回值ModelAndView
    * @Param: []
    * @return: org.springframework.web.servlet.ModelAndView
    */ 
    @RequestMapping(path = "/p2")
    public ModelAndView test03() {
        System.out.println("我执行了......");
        ModelAndView modelAndView = new ModelAndView();
        //将nihao存入到域中
        modelAndView.addObject("user","nihao");
        //设置跳转视图名称
        modelAndView.setViewName("success");
        return modelAndView;
    }
  • 返回json数据
    这需要使用@ResponseBody注解
   /*** 
    * @Description 页面发送一个异步请求到该地址
    * @Param: [account]
    * @return: void
    */ 
    @RequestMapping(path = "/p5")
    @ResponseBody
    public Account test06(@RequestBody Account account) {
        System.out.println("我执行了......");
        account.setName("lisi");
        return account;
    }
    //页面发送的请求
   <script>
    $(function () {
        $("#btn").click(function () {
            $.ajax({
                type:"post",
                url:"${pageContext.request.contextPath}/user/p5",
                contentType:"application/json;charset=utf-8",
                data:'{"id":1,"name":"test","money":999.0}',
                dataType:"json",
                success:function(data){
                    alert(data.id);
                    alert(data.name);
                    alert(data.money);
                }
            });
        });
    })
  </script>
  • springmvc本身提供的请求转发和重定向
    /*** 
    * @Description 请求转发
    * @Param: []
    * @return: java.lang.String
    */ 
    @RequestMapping(path = "/p3")
    public String test04() {
        System.out.println("我执行了......");
        //return "forward:/WEB-INF/views/success.jsp";
        //转发到这个地址
        return "forward:/user/p1";
    }

    /*** 
    * @Description 请求重定向
    * @Param: []
    * @return: java.lang.String
    */ 
    @RequestMapping(path = "/p4")
    public String test05() {
        System.out.println("我执行了......");
        //重定向到这个地址
        return "redirect:/user/p1";
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值