注解映射技巧
@RequestMapping注解:
(1)支持标准的URL,
(2)支持Ant风格的URL(?表示匹配一个字符,表示匹配任一字符,*表示匹配任一的URL的路径)
(3)占{xxx}占位符的URL。占位符可以通过类似于参数的方式,提前占到一个URL映射。后面可以用对应的用户提交的具体的值来替换掉对应的占位符。如/user/{userId}匹配user/123、user/abc等URL,123和abc可以在方法中以参数的方式传入,对应的{userId}。
请求方法细节处理
1.请求参数绑定
2.请求方式限制
3.请求转发和重定向
4.数据模型赋值
5.返回json数据
6.cookie访问
例:1、2、3、4点体现如下
1 |
|
返回json数据
1 |
|
Cookie访问
1 | @CookieValue(value = "userPhone",required = false) Long userPhone) |
前后端交互思考
$.get(),$.post()
- ajax异步请求.JavaScript发送AJAX请求,URL域名和当前页面一致。
- Controller接收用户请求,@RequestMapping映射URL,请求参数绑定到方法上。Controller内依赖注入Service,调用service方法处理数据,注意其返回类型,得到数据结果。
VO用来封装所有的数据结果,可以新建dto类(如SeckillResult),为所有的ajax请求返回类型,全部封装成json数据。定义变量及所需的不同构造函数(参数有data,即是sevice处理得到的数据结果)。
result=new SeckillResult<service方法返回类>(构造函数参数) 。泛型。最后return result;
- 在js中通过ajax拿到data。
$.get(),$.post():使用AJAX的HTTP GET或POST请求从服务器加载数据。
1 | $.get(seckill.URL.now(), {}, function (result) { |
回调函数function(result){})是一种以参数形式传递给另一个函数的函数。拿到result之后。通过result[data]可以取得相应数据。
$.ajax()
1 | getAllAccusedNames:function(){ |
可先将$.ajax()进行封装,成一个函数。在js中用到ajax()时,直接调动.getByAjax(参数)。参数则是对应的settings。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17getByAjax: function (async, methodType, returnType, url, data,
callbackMethod_success, callbackMethod_false) {
$.ajax({
async: async,
type: methodType,
dataType: returnType,
url: Global.rootPath + url,
data: data,
success: function (data) {
callbackMethod_success(data);
},
error: function (xhr) {
//可在此处新增权限提示,或者超时重登录提示
callbackMethod_false();
}
});
}
调用时:
1 | getAllAccusedNames: function () { |