doDispacht()中的ge'tHan'dlerAdapter(mapping) 和 adapt的handle方法

因为我们之前在Handle人AdapterMap中,是用的mapping 和 handlerAdapter来存储的。所以我们直接 用 handlerAdapters.get(mapping). 直接返回就ok了 HandlerAdapter

3调用 HandlerAdapter 的handle(req.resp,mapping)

1,这个方法中第一步是通过mapping 拿到方法的参数列表。这个是写在java代码中的method的形式参数。mapping.getMethod.getParameterTeype Class[] types拿到。这个数组确定了参数的个数,以及对应下标的类型是什么。
2,从浏览器拿到前边传过来的参数列表 req.getParameterMap() Map<String,String[]>
3,我们创建一个实际的参数列表 Object [] values = new Object[types.length];遍历2拿到的map entry.getvalue Arrays.toString().replaceAll("\[|\]","").replaceAll("\s",",") 这个是处理浏览器传过来的值。
4,给这些值找到对应的位置。 paramMappings.contains(entry.getkey()) paramMappings.get(entry.getkey()) 得到index 通过这个index 我们可以拿到数据额类型。
5,创建一个字符串转换成实际类型的方法,将浏览器的String 的value 传入。再传入这个数据方法中的实际类型,自己做转换。
6,赋值给我们存参数的对象values
7,paramMappings.get(req.getClass().getName()) 得到相应的下标。
8,values[index] = req;
9,调用这个方法 mapping.getMethod().invoke(mapping.getController(),values);得到这个方法应该的返回值。
10,mapping.getMethod().getReturnType() == HomeModeAndView.class return 方法的返回值(HomeModeAndView),如果不是就返回null
总结handlerAdapters就是一个 存一个下标,最终找下标的过程。然后新建一个数组,浏览器的数据存在相应的下标中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值