SpringRoo中action 和 方法的映射关系
来源:互联网 发布:panc.cc搜索软件 编辑:程序博客网 时间:2024/06/05 08:12
今天被老板问道为什么action这个路径就可以访问到这个list 方法上面而没有去访问别的方法;这个当时把我给问蒙了.因为我之前也思考过这个问题但是因为那会在调试中只是明白了如果你请求的路径为一个http://localhost:8080/项目名/类名加s就会访问到list这个类的list方法.对于为什么这个那会没有去深究因为要做其他调试就给忽略了,今天被问起,然后我就做了一些测试:
首先在springroo自动生成web层的每个类的controller里面都会生成很多的请求映射方法(即*.aj文件).而且在每个类(即*Controller.java)里面都会有这么一段annotation;
@RequestMapping("/类名加s")@Controller@RooWebScaffold(path = "类名加s", formBackingObject = 类名.class)
在这里其实就做了一个路径的映射.就是说你如果访问的路径是http://localhost:8080/项目名/类名加s ,他就会来在这个类中来寻找他所对应要请求的方法.而具体的要调用哪个方法就得看这个类中每个方法所映射的方式了,
首先我来解释一下为什么只要访问了类似这个路径
http://localhost:8080/项目名/类名加s
之后就会调用这个类的list方法,因为这list方法上面他是这么来进行映射的
@RequestMapping(produces = "text/html") public String ServiceController.list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel)
首先我们来分析一下上面的映射其实这个@RequestMapping(produces="text/html")就可以写成@RequestMapping(produces="text/html",method=RequestMethod.GET),这样就是说,只要是get请求而且没有其他的参数,这样他就只能访问这个list了.
下面说下他的为什么能去调用delete方法,下面是delete方法的请求映射.
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
主要是他看他的method的参数,因为参数不同,所以他访问的是delete方法,而且这个方法的调用必须在页面的form表单里面写上这个隐藏域:
<input type="hidden" name="_method" value="DELETE">
很明显可以看出来这两个红色的是对应的,而且RequestMethod提供的参数不多,所以那么我们如何来实现自己的方法请求映射了其实直接可以来设置方法所对应的@RequestMapping(value = "/......"}的路径不同来做映射.
在struts的action配置中他是用不同的action的method参数来做映射的
而springroo却是用访问路径的RequestMapping来做映射的.
- SpringRoo中action 和 方法的映射关系
- 一种XML文档和关系数据库的映射方法
- Struts2 中拦截器和Action的调用关系
- Struts2 中拦截器和Action的调用关系
- Struts2 中拦截器和Action的调用关系
- action和servlet的关系
- action和servlet的关系
- 关于sqlserver2000和sqlserver2005中master数据表的映射关系
- JDBC中Sql类型和java类型的映射关系
- jni中Java和本地类型的些映射关系
- MyBatis中多对多关系的映射和查询
- MyBatis中jdbcType和javaType的映射关系
- MyBatis中多对多关系的映射和查询
- MyBatis中多对多关系的映射和查询
- webwork 中,映射action的一点特性
- 关于Struts中Action映射的解释
- spring mvc配置,可以理解为映射机制,即http url和action代码之间的关系的配置
- valuestack,stackContext,ActionContext.之间的关系以及action的数据在页面中取得的方法
- mysql 授权表tables_priv
- 求坐标转换矩阵
- Mysql 入门学习指南
- 推荐系统之详细介绍
- Xcode代码行数统计
- SpringRoo中action 和 方法的映射关系
- 根文件系统的制作
- android GLSurfaceView 异常处理
- 角色分配(ext)
- 程序员的缺点
- 第九届中国软件工程大会(免费)
- ext传值与一些零碎的操作笔记
- innodb log及datafile增删
- Delphi中methodaddress的代码解析