我尝试使用Querydsl实现搜索过滤器。我的搜索过滤器功能正常。但我通过在控制器中提供硬编码值来测试它。
现在我想从Angular应用程序中获取该搜索参数。在获取请求中,如何从角度sClientAcctId, sAcctDesc,sInvestigatorName,sClientDeptId
任何人都可以建议我怎么做?
AccountController.java
@GetMapping("/findAccountData")
public ResponseEntity<List<Tuple>> populateGridViews(String sClientAcctId, String sAcctDesc,String sInvestigatorName,String sClientDeptId) throws Exception {
return ResponseEntity.ok(accService.populateGridViews(sClientAcctId, sAcctDesc,sInvestigatorName,sClientDeptId));
}
我尝试使用@PathVariable
这样做但在这里我需要传递所有参数然后只有请求匹配其他明智我得到404
我的功能是,如果我没有传递任何参数,那么我想要所有数据,如果我只传递一个参数,那么根据那个参数值进行搜索
@GetMapping("/findAccountData/{clientAcctId}/{acctDesc}/{investigatorName}/{clientDeptId}")
public ResponseEntity<List<Tuple>> populateGridViews(
@PathVariable("clientAcctId") String sClientAcctId,
@PathVariable("acctDesc") String sAcctDesc,
@PathVariable("investigatorName") String sInvestigatorName ,
@PathVariable("clientDeptId") String sClientDeptId) throws Exception {
答案 0 :(得分:1)
使用其他类型或参数@RequestParam
控制器看起来像这样
@GetMapping("/findAccountData/")
public ResponseEntity<List<Tuple>>
populateGridViews(@RequestParam("clientAcctId") String
sClientAcctId, @RequestParam("acctDesc") String sAcctDesc, @RequestParam("investigatorName") String sInvestigatorName, @RequestParam("clientDeptId") String
sClientDeptId) throws Exception {
}
您可以使用/findAccountData/?clientAcctId=1&acctDesc=desc
传递所需变量。
答案 1 :(得分:-1)
使用@PathVariable批注从GET请求获取任何查询参数值。
例如:
@GetMapping("/findAccountData/{clientAcctId}/{acctDesc}/{investigatorName}/{clientDeptId}")
public ResponseEntity<List<Tuple>>
populateGridViews(@PathVariable("clientAcctId") String
sClientAcctId,@PathVariable("acctDesc") String sAcctDesc,@PathVariable("investigatorName") String sInvestigatorName,@PathVariable("clientDeptId") String
sClientDeptId) throws Exception {