spring mvc 常用前后台数据交互的注解


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

Url模板

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

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

适用于Restful风格架构,

注入bean

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

@Resource@Autowired可以实现注入。

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

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

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

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

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

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

@RequestMapping

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

主要用来定义请求路径。

高级用法:

@RequestHeader@CookieValue

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

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

示例:

@RequestParam,

@RequestParam

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

@requestBody@respondBody

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

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

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

@SessionAttributes, @ModelAttribute

@SessionAttributes:

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

@ModelAttribute

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

这种方式实际的效果就是在调用@RequestMapping的方法之前,为request对象的modelput(“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=/loginmethod = RequestMethod.post)

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

......

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

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

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

}

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

@RequestMapping()

Public string loginOut(Request requesthttpservletResponse response ){

String name = request.getParameter(name)

String age = request.getParameter(age)

}

}

后台发送数据:

1modelAndView 方法:

2modelMap方法

3map方法

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

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

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

modelAndView 返回的就是一个视图。

前台发送数据,

略:

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

Ajax{

Url:login/login,

Data{},

Datatype:json,

Successfunction(){}

}

优质内容筛选与推荐>>
1、下位机多个".c, .h"文件的相互包含及排版
2、数据库--视图的基本概念以及作用
3、python编程 入门后学习笔记一 ——socket通信(1)
4、iOS实践01
5、el表达式


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号