spring mvc 常用前后台数据交互的注解(转载)

关于spring mvc前后台交互的一些注解

Url模板

在请求路径中添加变量,使用{}。通过@pathVariable注解在方法参数中,获得url中的变量值。

@pathVariable(“url中的变量名”) 参数。

 

适用于Restful风格架构,

注入bean

当在类中需要引用另一个类对象的时候,需要注入。

@Resource和@Autowired可以实现注入。

@Autowired默认是根据bytpye类型注入对象。

@Resource默认是根据byName注入对象。

Autowired也可以实现byName方式注入对象。搭配@Qualifier("对象名")

 

@Resource也可以实现byType方式注入对象。

@Resource(type=”对象名”)即可根据bytype方式注入。

 

建议统一使用@Autowired方式,根据bytype方式注入。

@RequestMapping

 标记的处理器方法支持的方法参数和返回类型

主要用来定义请求路径。

高级用法:

 

 

 

@RequestHeader、@CookieValue

这两个注解可以讲httprequest的头信息和cookie信息绑定到处理器的参数上。

当需要获取请求头或者cookie信息的时候可以使用。

示例:

 

@RequestParam,

@RequestParam

相当于 request。Getparameter()方法。该注解直接将前台传过来的参数,绑定到对应的参数上,供方法体使用。后面跟的参数名称需要和前台页面中的name名称一致。

@requestBody@respondBody

当前台页面传入的数据时一个完整的表单,并属于某个类对象的属性。使用 @RequestBody 和respondBody注解,自动将前台传入的json字符串转换成对应的类对象。

@RequestBody只能接收POST请求,get是不行的,

应用场景。例如,一个检索页面,对主表进行查询,查询条件为表中的各个字段。需要将查询条件传到后台。直接使用@requestBody将前台的json数据转换成实体对象。方便查询。 同时,在方法体上添加respondBody后,直接返回类对象。Spring会自动将这个类对象转换成json格式,供前台使用。

@SessionAttributes, @ModelAttribute

@SessionAttributes:

该注解用来绑定HttpSession中的attribute对象的值,便于在方法中的参数里使用。

 

@ModelAttribute

用到方法上@ModelAttribute的示例代码:

 

这种方式实际的效果就是在调用@RequestMapping的方法之前,为request对象的model里put(“account”, Account)。

用在参数上的@ModelAttribute示例代码:

 

首先查询 @SessionAttributes有无绑定的Pet对象,若没有则查询@ModelAttribute方法层面上是否绑定了Pet对象,若没有则将URI template中的值按对应的名称绑定到Pet对象的各属性上。

后台接收数据:

接收前台数据,可以根据不同类型数据,使用不同注解。

添加控制器注解:@controller

添加映射地址:@requestmapping(“/类名去掉controller”)方便定位使用控制器,可以省略,

在控制器方法中:

方法上添加映射路径的时候;直接添加@requestmapping注解,框架默认使用方法名作为路径。简洁方便,使用这种方法,需要在拦截器中需要配置。把静态资源过滤掉。否则前台页面无法访问静态资源。

示例:请求路径为:../login/login

@controller

@requestMapping(“/login”)//可省略,省略后请求路径为类名去掉后面的 controller,所以还是/login。

Public class loginController{

@RequestMapping(path=”/login” method = RequestMethod.post)

Public string login(string username ,string password  Model model){

......

//model参数必须放在最后.

//前台传入参数少的时候可以直接放到方法上。

//model用来向前台发送数据。

 }

前台发送多个参数的时候,特定情况下可以使用@requestBody注解

@RequestMapping()

Public string loginOut(Request request, httpservletResponse response ){

String name = request.getParameter(“name”)

String age = request.getParameter(“age”)

}

}

后台发送数据:

1、modelAndView 方法:

2、modelMap方法

3、map方法

其实三种方法本质差别不大,只是表现形式不同。

建议使用mdelMap方法。在处理器方法中加上modelMap model。

使用model.addAttribute("uname", name)方法,springmvc就可以自动将数据发送到前台。不用return。

modelAndView 返回的就是一个视图。

前台发送数据,

略:

建议统一使用ajax方式。Datatype使用json格式。

Ajax{

Url:”login/login”,

Data{},

Datatype:’json’,

Success:function(){}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值