@RequestMapping和Handler返回值总结

@RequestMapping

url映射

  • 定义controller方法对应的url,进行处理器映射使用。

如:

    @RequestMapping("/findItemById")
    public String findItemById(String id , Model model){
        if(id!=null&&!id.equals("")){
            model.addAttribute("item",itemDaoService.findItemById(id));
        }
        return  "/WEB-INF/content/editItem.jsp";
    }

窄化请求映射

这里写图片描述

限制http请求方法

出于安全性考虑,对http的链接进行方法限制。
如果限制请求为post方法,进行get请求,报错:

这里写图片描述
这里写图片描述

controller方法的返回值

  • 在Adapter执行Handler后,最终Adapter会返回一个ModelAndView。
  • 然而在Hander中,我们可以只返回View,最终Adapter会帮我们封装的。

通常我们Hander有以下几个返回值:

返回ModelAndView
  • 需要方法结束时,定义ModelAndView,将model和view分别进行设置。
返回string

如果controller方法返回string。

1、表示返回逻辑视图名。
真正视图(jsp路径)=前缀+逻辑视图名+后缀

默认是通过转发实现的。

这里写图片描述

2、redirect重定向
商品修改提交后,重定向到商品查询列表。
redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享)

这里写图片描述

3、forward页面转发
通过forward进行页面转发,浏览器地址栏url不变,request可以共享。

这里写图片描述

返回void

在controller方法形参上可以定义request和response,使用request或response指定响应结果:
1、使用request转向页面,如下:
request.getRequestDispatcher(“页面路径”).forward(request, response);

2、也可以通过response页面重定向:
response.sendRedirect(“url”)

3、也可以通过response指定响应结果,例如响应json数据如下:
response.setCharacterEncoding(“utf-8”);
response.setContentType(“application/json;charset=utf-8”);
response.getWriter().write(“json串”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值