在看源代码的时候,
@RequestMapping("/delete")
@ResponseBody
public Map delete(HttpServletRequest request,String fucntionNumber,String ids)
这里的functionNumber和ids怎么传入到函数体的?
就是spring把什么传入了这个函数?
新手。对于spring框架不是很了解。
这是框架做的,框架可以通过反射读取这些注记,并且将它和你的参数对应起来。
因为springmvc这个框架在web启动时的入口servlet类是DispatcherServlet,也就是配置在web.xml中的servlet。而DispatcherServlet这个类最终是继承与HttphttpServlet这个类。学过javaweb都知道这个类有doget,dopost方法 而springmvc把这两个方法进行重写与封装后 通过@注解进行反向映射实现获取数据的,
虽然楼主已经采纳了别人的意见,在这里我再说两句:
这个机制是框架参数绑定机制,框架的处理器适配器会调用 框架提供的参数绑定组件将你在客户端传过来的key/value形式的参数转换成方法形参。
这个机制对于get请求和post请求都一样。绑定的过程基本不用管,框架自动完成。
参数绑定组件:在早期版本,使用的是PropertyEditor(只能将字符串转成java对象)。后期使用的是converter(可以进行任意类型的转换)。
框架提供了很多的converter(转换器),一般情况一不需要编写。特殊情况下需要自定义converter。