@RequestMapping基本应用
@RequestMapping 除了修饰方法, 还可来修饰类 :
类定义处: 提供初步的请求映射信息。相对于 WEB 应用的根目录;
方法处: 提供进一步的细分映射信息。 相对于类定义处的 URL。
若类定义处未标注 @RequestMapping,则方法处标记的 URL相对于 WEB 应用的根目录
返回ModelAndView时的url会根据你的 @RequestMapping实际情况组成。
如果类上没有映射,那么url直接就是方法的映射;否则url为类上+方法上映射路径组合。
对应项目jsp位置则是一级路径对应一级文件目录。
如url为/default/index对应项目中webapp/default/index.jsp
@RestController
@RequestMapping("/user")
public class UserController extends BaseController {
private static final String UPLOAD_DIR_NAME = "upload";
@Autowired
private IUserService userService;
@PostMapping("/reg.do")
public ResponseResult<Void> handleReg(
User user) {
userService.reg(user);
return new ResponseResult<Void>(SUCCESS);
}
@PostMapping("/login.do")
public ResponseResult<User> handleLogin(
@RequestParam("username") String username,
@RequestParam("password") String password,
HttpSession session) {
// 执行登录
User user
= userService.login(username, password);
// 将相关信息存入到Session
session.setAttribute("uid", user.getId());
session.setAttribute("username", user.getUsername());
// 返回
return new ResponseResult<>(SUCCESS, user);
}
<script type="text/javascript">
// 为登录按钮绑定单击事件
$("#btn-login").click(function() {
// 将请求提交到哪里
var url = "../user/login.do";
// 请求参数
var data = $("#form-login").serialize();
console.log("登录参数:" + data);
// 发出ajax请求,并处理结果
$.ajax({
"url": url,
"data": data,
"type": "POST",
"dataType": "json",
"success": function(json) {
if (json.state == 200) {
alert("登录成功!");
// 将头像路径存到Cookie
$.cookie("avatar", json.data.avatar, {
expires: 7
});
console.log("登录成功,将头像路径存到Cookie:"
+ $.cookie("avatar"));
} else {
alert(json.message);
}
}
});
});
</script>