天天看點

2021-08-SpringMVC參數傳遞 Vue增強1.SpringMVC參數傳遞同名送出問題2 VUE課題筆記

1.SpringMVC參數傳遞

  1. controller定義查詢方法,
  2. 調用service層方法實作,
  3. service實作層調用Mapper層方法,持久層MabatisPlus調用基本方法查詢。

1.1需求說明

根據id查詢使用者資訊    http://localhost:8080/findUserById?id=1

編寫controller和ServiceImpl

@GetMapping("findUserById") //get參數
public User findUserById(Integer id){
    return userServicel.findUserById(id);
}      
@Override
public User findUserById(Integer id) {
    return userMapper.selectById(id);
}      

1.2 對象參數接收

案例: 根據name=“王昭君” sex=女 查詢使用者資料?

URL: http://localhost:8080/findUserByNS?name=王昭君&sex=女

url預設沒傳入的屬性指定為null,為null就不會進行where條件拼接,

指定傳入的就會被set方法拼接,是以 QueryWrapper參數可以直接傳入user對象

底層實作: 參數name="xxx" 拼接set形成setName,之後檢查對象中
     * 是否有對應的setName(), 如果比對該方法,則為對象指派.
     * 注意事項: 參數名稱最好以屬性名稱一緻
           
@GetMapping("findUserByNS")
    public User findUserByNS(User user){
        return userServicel.findUserByNS(user);
}      
@Override
public User findUserByNS(User user) {
    QueryWrapper<User> userQueryWrapper = new QueryWrapper<>(user);
    return userMapper.selectOne(userQueryWrapper);
}      

1.3 RestFul參數接收

REST指的是一組架構限制條件和原則。滿足這些限制條件和原則的應用程式就是RESTful

定義:RESTFul是一種請求的規則(文法、定義)

RESTFul說明

Get請求: http://localhost:8090/findUserByNS?name=王昭君&sex=女

  • 查詢請求
  • 參數直覺
  • 請求的結構備援,不合适多個參數的寫法

請求優化:http://localhost:8090/user/王昭君/女

優勢:

  • 使用者不能了解請求的意圖,請求方法名稱不能出現動詞,隻能寫名稱
  • 參數保密,隻有後端伺服器清楚參數的意義
  • 請求位元組傳輸量少,簡潔

注意事項:

  • URL位址中參數與參數直接使用/分隔
  • 請求的參數的位置一旦固定,不可輕易修改
  • 使用者發請求時,就應該按照restFul的結果執行
  • restFul請求一般以get請求為主

RESTFul案例

查詢 name=“貂蟬” age> 10 歲 的使用者.

URL: http://localhost:8080/user/貂蟬/10

@RequestMapping("user/{name}/{age}")
    public List<User>  findUserByRe(User user){
        return userServicel.findByRe(user);

}      
@Override
public List<User> findByRe(User user) {
    QueryWrapper<User> objectQueryWrapper = new QueryWrapper<>();
    objectQueryWrapper.eq("name", user.getName()).gt("age", user.getAge());
    return userMapper.selectList(objectQueryWrapper);
}      

同名送出問題

使用者查詢id=1,3,4,5的資料. 如果有同名參數一般采用 ',号 ’ 分隔

URL: http://localhost:8080/findUserByIds?ids=1,3,4,5

2 VUE課題筆記

var/let/const說明

var 沒有作用域的概念,容易出現安全性問題,成員變量

let 作用var類似,有作用域的概念 局部變量

const 定義常量