zoukankan      html  css  js  c++  java
  • 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(){}

    }

  • 相关阅读:
    webview学习
    Android中webview html5 自动播放本地视频
    Android中使用WebView实现全屏切换播放网页视频
    Android中实现Activity的透明背景效果
    App过大
    Android 9.0网络权限适配
    Android中自定义环形图2
    Android中自定义环形图
    Android中自定义水球
    vue学习指南:第五篇(详细)
  • 原文地址:https://www.cnblogs.com/zhangkaikai/p/7299809.html
Copyright © 2011-2022 走看看