页面ajax和SpringWebMvc交互

参考:https://blog.csdn.net/u014079773/article/details/52984747

以$.ajax()的"data"属性值类型做区分。

一、data属性值类型为json对象

  1.前端:

$.ajax({
    type: "post", //只能是post
    url: "xxxxx.do",
    dataType: "json",
    data: "{'name':'a','pwd':'123'}",
    contentType: "application/json" //只能是这个值
});

  2.后端 

@RequestMapping(value = "/xxxx.do")
public void method(@RequestBody User user) {}// 必须添加@RequestBody注解

二、data属性值是js对象或者请求参数是"?aa=bb&&xx=yy"形式

  1.前端:

$.ajax({
    type: "get", //get和post均可
    url: "xxxxx.do?name=a",
    dataType: "json",
    data: {pwd:'123'},
    contentType: "application/json" //"application/json"或者默认值:"application/x-www-form-urlencoded"
});

  2.后端:

@RequestMapping(value = "/xxxx1.do")
public void method1(User user) {}
//或者
@RequestMapping(value = "/xxxx2.do")
public void method2(String name, String pwd) {}

三、关于@RequestParam注解

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
    
    // 作用同name()
    @AliasFor("name")
    String value() default "";

    // 指定方法参数对应的http请求参数
    @AliasFor("value")
    String name() default "";

    // http请求中是否必须有这个参数。
    boolean required() default true;

    // 当参数不存在或者值为空时,采用默认值。不会受到required()的影响
    String defaultValue() default ValueConstants.DEFAULT_NONE;

}

没有验证,仅限猜测:@RequestParam只有自身4个标签的作用,没有数据类型转换的作用。

posted @ 2018-04-16 18:35  乐摁码  阅读(110)  评论(0)    收藏  举报