
@click是注册点击事件 ==> 调用submitForm函数, 并传参数'userForm'
methods:{} 中需要定义这个submitForm函数
this.$refs[formName]表示根据参数formName找到视图中指定名称的表单
这个formName是上面提交按钮传过来的'userForm'
this.$http.post('url', 参数)
.then((data) => {
})
后端需要使用@RequestBody请求体里面获取数据, 否则数据取不到

参数得传和取同POST请求
- this.$http.put('', 参数)
- .then((data) => {
-
- })
这种请求一般也是携带id, 可以使用占位符得方式
- this.$http.delete('')
- .then((data) => {
-
- })
处理get请求用@GetMapping
处理post请求用@PostMapping,参数使用@RequestBody从请求体获取
处理put请求用@PutMapping,参数使用@RequestBody从请求体获取
处理delete请求用@DeleteMapping
所有得控制器方法得返回值统一使用封装得ResponseData类型
所有得控制器方法中只有一行return 代码
这样控制器层得代码会非常干净,整洁
所有得业务代码全部交给Service层取实现
- @RestController
- @RequestMapping("/api/user")
- public class UserController {
- @Resource
- private UserService userService;
-
- @GetMapping("/list")
- public ResponseData list(UserPage userPage){
- return userService.selectPage(userPage);
- }
-
- @DeleteMapping("/del/{id}")
- public ResponseData del(@PathVariable("id") Integer id){
- return userService.logicDeleteById(id);
- }
-
- @GetMapping("/detail/{id}")
- public ResponseData detail(@PathVariable("id") Integer id){
- return userService.selectById(id);
- }
-
- @PutMapping("/edit")
- public ResponseData edit(@RequestBody User user){
- return userService.edit(user);
- }
-
- @PostMapping("/login")
- public ResponseData login(@RequestBody User user){
- return userService.login(user);
- }
- }
因为控制器层方法得返回值是ResponseData类型
这里直接返回调用得service层方法得返回值
那么,编写Service层接口和实现类得时候,也需要统一Service层全部返回ResponseData类型
- public interface UserService {
- ResponseData selectPage(UserPage userPage);
-
- ResponseData logicDeleteById(Integer id);
-
- ResponseData selectById(Integer id);
-
- ResponseData login(User user);
-
- ResponseData edit(User user);
- }
- @Service
- public class UserServiceImpl implements UserService {
- @Resource
- private UserMapper userMapper;
-
- @Override
- public ResponseData selectPage(UserPage userPage){
- QueryWrapper qw=new QueryWrapper();
- qw.likeRight(StringUtils.hasText(userPage.getUsername()),"username",userPage.getUsername());
- qw.likeRight(StringUtils.hasText(userPage.getIdCode()),"id_code",userPage.getIdCode());
- qw.likeRight(StringUtils.hasText(userPage.getMobile()),"mobile",userPage.getMobile());
- qw.eq("is_delete", 0);
- return ResponseData.success(userMapper.selectPage(userPage,qw));
- }
-
- @Override
- public ResponseData logicDeleteById(Integer id) {
- User user = new User();
- user.setId(id);
- user.setIsDelete(1);
- return ResponseData.success(userMapper.updateById(user) > 0 ? true: false);
- }
-
- @Override
- public ResponseData selectById(Integer id) {
- return ResponseData.success(userMapper.selectById(id));
- }
-
- @Override
- public ResponseData login(User user) {
- User dbUser = userMapper.selectByUsername(user.getUsername());
- if (dbUser == null){
- throw new CustomException(ResponseMsg.USER_NOT_EXIST);
- }else {
- if(!user.getPassword().equals(dbUser.getPassword())){
- throw new CustomException(ResponseMsg.PASSWORD_ERROR);
- }
- }
- String token = TokenUtil.getToken(dbUser);
- dbUser.setToken(token);
- return ResponseData.success(dbUser);
- }
-
- @Override
- public ResponseData edit(User user) {
- return ResponseData.success(userMapper.updateById(user));
- }
- }
在调试前后端通信得时候,一定要学会浏览器F12功能里面得网络
