如何从Angular应用程序接收GET请求中的参数

时间:2018-06-02 07:54:11

标签: java spring-mvc

我尝试使用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 { 

2 个答案:

答案 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 {