[英]Using a custom annotation on a Spring MVC controller method from an interceptor
[英]Spring MVC: Correct Annotation of Controller Method for RESTful URI including ';'
设计我的RESTful API时,我想使用以下URI
http://[HOST]/[PLANET]/[LAT];[LONG]
例如
http://myserver/earth/50.2;29.1
Spring MVC中这种方法的适当注释是什么? 接下来的一个可以吗?
@RequestMapping(value = "/{planet}/{lat};{long}", method = RequestMethod.GET)
public String showInfoAboutCoords(
@PathVariable final String planet,
@PathVariable final String lat,
@PathVariable final String long,
final HttpServletResponse response) {
// Implementation
}
如果这个没问题- @MaskFormat("###-##-####")
什么用?
您的URI模式有两个问题:
;
作为分隔符并修整URI(例如Tomcat的错误30535 )。 所以,作为一种解决方法你可以使用一些不同的角色,比如,
。 所以,你会得到类似
@RequestMapping(value = "/{planet}/{lat:.*},{long:.*}", method = RequestMethod.GET)
请注意,由于您禁用了Spring的扩展处理,因此您必须在需要时手动启用它(这还需要更多限制性的regexp以避免将小数点与扩展分隔符混淆):
@RequestMapping(value =
{"/{planet}/{lat:.*},{long:\\d+\\.\\d+}",
"/{planet}/{lat:.*},{long:\\d+\\.\\d+}.*"},
method = RequestMethod.GET)
@MaskFormat
可能表示来自mvc-showcase
的注释(请注意,它是一个内置注释)。 连同MaskFormatAnnotationFormatterFactory
一起,它演示了将路径变量(即字符串)转换为方法参数的新格式设置。 实际上,它会将String
转换为String
,因此仅用于验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.