SpringMVC是如何查找方法的参数名的?
来源:互联网 发布:淘宝广告地垫 编辑:程序博客网 时间:2024/05/08 06:16
项目中用到SpringMVC,常见的用法像这样
@Controller@RequestMapping("test")class Test{ @RequestMapping("/hello") @ResponseBody public Object test(@RequestParameter("name") String name){ return "hello! "+name; }}
当GET http://localhost:8080/test/hello?name=aducode请求到服务端时, SpringMVC的 DispatcherServlet处理请求,并根据URL找到@RequestMapping对应的方法,然后根据
@RequestParameter("name") 将url中的name值传递给方法调用
但是Spring还支持默认参数名
@Controller@RequestMapping("test")class Test{ @RequestMapping("/hello") @ResponseBody public Object test(String name){ return "hello! "+name; }}即不适用@RequestParameter注解,昨天有人问我这种情况是如何找到url中对应参数的。考虑了一下,使用java的反射机制是不能获取参数名这样的信息的,于是大概查看了一下spring的源码,发现是使用了 org.springframework.core.LocalVariableTableParameterNameDiscoverer 这个类,原理就是读取class字节码,解析其中中的LocalVariableTable,得到方法的参数名称。这样的前提是java编译成class时,必须开启debug,如果关闭debug,就会失效。测试结果如下:
0 0
- SpringMVC是如何查找方法的参数名的?
- ClassLoader 是如何查找类的?
- SpringMVC的Controller方法参数
- SpringMVC遇到方法名重复的问题
- 如何查找vim环境设定参数的帮助
- @selector 里面的方法名加参数
- 获取java方法的参数名
- Spring LocalVariableTableParameterNameDiscoverer获取方法的参数名
- 已知列名列表,如何查找含有这些列的表
- 方法名、选择器、消息、参数名的概念解释
- (不推荐使用)springMVC基本配置+继承MultiActionController来实现根据参数名指定要请求的方法
- 原来Java的类名,方法名,变量名,参数名可以用中文啊
- SpringMVC是方法级别的测试
- springMVC中获取页面参数的方法
- springmvc接收请求参数的方法
- SpringMVC Ajax 获取参数的方法
- springMVc方法参数绑定常见的数据类型
- SpringMVC常用获取传递参数的方法
- 图解Java多态内存分配以及多态中成员方法的特点
- A + B Again(2057)
- Android中workerthread与UIthread同时访问同一资源造成ConcurrentModificationException解决参考
- .NET中使用Jquery和Ajax(二)
- Java Dom对XML的解析和修改操作
- SpringMVC是如何查找方法的参数名的?
- C#编码好习惯(有空没空多看看)
- 岳飞传
- hdu 2068 RPG的错排(错排)
- 【DLL(OCX)】动态注册方法
- Node.js 服务器简单模块
- crontab执行不了php的解决方法
- printf、sprintf与fprintf 的用法区分
- MFC中添加新的对话框