Spring MVC @PathVariable 最后一个点(dot)以后的字符串(或说扩展名)丢失


转自:http://iteches.com/archives/7011


使用以下的 @PathVariable,当 key 值为 abc 或 123 时都没有问题。

@RequestMapping(value = "/release/{key}", method = RequestMethod.GET)
public @ResponseBody
String release(@PathVariable String key) {
    log.debug("取得key值 {}", key);
    return release;
}

但是当 key 值有「.」时就会出错,比如说「/release/a.b.c」,到了 @PathVariable 就只剩下「a.b」,「.c」不见了,原因出现 Spring MVC 预设会切掉最后一个点以后的字符串,应该是在处理「*.do」这样的 Url pattern 的关系。

解决方式:在 @PathVariable 里使用 Regular Expression 来配置 key 值的长相。

@RequestMapping(value = "/release/{key:[a-zA-Z0-9\\.]+}", method = RequestMethod.GET)
public @ResponseBody
String release(@PathVariable String key) {
    log.debug("取得key值 {}", key);
    return release;
}

另:Restful Springmvc详细介绍参考 http://blog.arganzheng.me/posts/restful-springmvc.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值