我正在尝试为我的应用程序开发新的Web服务。
为此我正在使用Spring REST-webservice
。
在控制器端,我试图根据传递的代理获取记录列表。被提取。
根据搜索结果之一,尝试使用以下代码来实现动态。
@RequestMapping(value = "/staging/{agentCode: [^/]*?}" , method =
RequestMethod.GET)
这是我现有的代码:
@Controller
@RequestMapping(value="/batches")
public class BatchController {
@SuppressWarnings({ "rawtypes" })
@RequestMapping(value="/staging/{agentCode}", method =
RequestMethod.GET)
@ResponseBody
public ResponseEntity IntmBatch(@PathVariable("agentCode") String
agentCode)
{
//code here
}
案例1 :当我使用url like。,
www.example.com/myapplication/batches/staging/1234
它的工作正常,并且需要取得所需的结果。
案例2 :但是,如果我没有传递任何参数。
www.example.com/myapplication/batches/staging/
在哪里,我没有传递任何参数。它说我找不到映射。
您可以让我知道如何在REST
获取请求方法中实现此动态URL。
预先感谢!
而不是使用@Pathvariable
,您可以在URL中使用@RequestParam
进行可选值。
这样您的URL会就像。
案例1 : www.example.com/myapplication/batches/staging?agentCode=1234
&
情况2 :www.example.com/myapplication/batches/staging
希望它可以解决您的问题。
@SuppressWarnings({ "rawtypes" })
@RequestMapping(value="/staging", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity IntmBatch(@RequestParam(name="agentCode",required=false) String agentCode)
{
//code here
}
使用@requestmapping(value ="/stataging",method = requestMethod.get)创建另一个方法。
@RequestMapping(value = "/staging", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity returnAll() {
System.out.println("returning all ");
// code here
return null;
}