@RequestMapping(value = "v1/firew

我在理解以下 Rest 端点正在做什么时遇到了很多麻烦 - 更具体地说,value = "v1/firewall/policy/{zoneId:.*\\D+.*}"部分:


   @RequestMapping(

        method = {RequestMethod.PUT, RequestMethod.POST},

        value = "/v1/firewall/policy/{zoneId:.*\\D+.*}",

        headers = "Accept=application/json"

)

public ResponseEntity post_policy(@RequestBody InformationPolicy informationPolicy,

                                  @RequestHeader("deployment-id") String deploymentId) {


    someService.process(policyInformation, deploymentId);


    return createResponse(new RestStatus(HttpStatus.OK));


}

我知道我应该为 传递一些值"{zoneId:.*\\D+.*}",我以前从未见过这种格式(zoneId:.*\\D+.*)——那到底是什么?


慕妹3146593
浏览 197回答 1
1回答

森栏

冒号后面的部分是正则表达式。\D表示“非数字”,所以zodeid部分必须包含一个非数字,即OK:     /v1/firewall/policy/12XNot OK: /v1/firewall/policy/123仅供参考+,意思是“至少一个”,可以删除而不会产生任何影响,因为一个是至少一个。顺便说一句,上次我尝试时,如果您想在您的值中使用点,则必须使用允许点的正则表达式,例如field:.*,因为默认行为不允许点。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java