首页 > 经验记录 > java > SpringMVC控制器和请求映射和传值

SpringMVC控制器和请求映射和传值

有两种方式编写控制器:

通过注解@Controller@RequestMapping 定义

通过实现Controller接口定义

 

当然应该没什么人用接口定义了吧,我看资料说也是被淘汰了,现在一般都注解配置,确实用注解方便许多

 

@Controller注解:  声明一个类为控制器,任何一个类都可以被申明为一个控制器

@RequestMapping注解:将请求映射至控制器的具体某个方法

 

主要说下@RequestMapping这个注解

Spring MVC 是通过@RequestMapping进行请求映射的。

请求映射就是说你在页面的url请求啊、ajax的请求啊啥的路径指向这儿配置的路径就可以调用这个路径代表的方法。其实和servlet差不多

@RequestMapping可以用在类级别,也可以用在方法级别。最常用的是标注在某个方法上

@RequestMapping最典型的用法:

@RequestMapping(value=“/xxx/xxx”)

@RequestMapping共有6个属性,分别是:

value、method、consumes、produces、params、headers。

value:指定请求的实际地址,指定的地址可以是URI Template 模式。

method:指定请求的method类型, GET、POST、PUT、DELETE等。

consumes:指定处理请求提交的内容类型(Content-Type),例如application/json, text/html。

produces :指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

params :指定request中必须包含某些参数值时,才让该方法处理。

headers :指定request中必须包含某些指定的header值,才能让该方法处理请求。

 

请求映射方式真的好多,我不想写了,反正有资料查,不知道的时候在百度吧

 

传值也懒得写那么多了,随便说说吧

传值可以直接使用java的servletAPI,比如直接在方法参数中设置一个HttpSession,直接设置一个HttpServletRequest这种东西,可以直接使用。效果一模一样

然后可以用@RequestParam(value=”xxx”)这种方式指定传过来的参数绑定到某一个形参上面,你得在形参上面定义好一个能够接受的数据模型

还有Spring MVC会按请求参数名和表单对象属性匹配,自动为该对象填充属性值。支持级联的属性名。意思就是你提交一个username=123456到我的控制器这儿,我也有一个形参名字和你的一样叫做username,那么123456会自动注入到我的username上面去。对象也可以,比如我有个User对象,对象里面有个属性是username,他也会直接传过来

 


EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00