@PathVariable出现点号"."时导致路径参数截断获取不全的解决办法

1、问题
SpringMVC项目中通过下面的URL进行GET请求。当version有多个小数点的时候。如version为1.0.1008。后台通过@PathVariable来获取version等于1.0。会丢失部分数据。

URL:

http://host_ip/consumer/appVersion/phone/android/download/{version}

Controller:

@RequestMapping(value="android/download/{version}",method=RequestMethod.GET)
public void download(HttpSession session,HttpServletResponse response,@PathVariable("version")String version){

}

2、解决方案

在version段后增加一个静态的字符段,这个段没有任何意义,可以为任意字符。

URL:

http://host_ip/consumer/appVersion/phone/android/download/{version}/static_str

问题虽然解决了,但毕竟URL后多了个小尾巴,心情不愉悦。
再次谷哥。
参考:
http://stackoverflow.com/questions/3526523/spring-mvc-pathvariable-getting-truncated

URL不加小尾巴。

在@RequestMapping的value中使用SpEL来表示,value中的{version}换成{version:.+}。

@RequestMapping(value="android/download/{version:.+}",method=RequestMethod.GET)
public void download(HttpSession session,HttpServletResponse response,@PathVariable("version")String version){

}

终于可以再一次愉悦地进行玩耍了。

时间: 2024-09-17 04:55:55

@PathVariable出现点号"."时导致路径参数截断获取不全的解决办法的相关文章

当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法_MsSql

最近同事反映,在使用pt-heartbeat监控主从复制延迟的过程中,如果master down掉了,则pt-heartbeat则会连接失败,但会不断重试. 重试本无可厚非,毕竟从使用者的角度来说,希望pt-heartbeat能不断重试,直到重新连接上数据库.但是,他们发现,不断的重试会带来内存的缓慢增长. 重现 环境: pt-heartbeat v2.2.19,MySQL社区版 v5.6.31,Perl v5.10.1,RHEL 6.7,内存500M 为了避免数据库启停对pt-heartbea

win8 远程桌面时提示凭证不工作问题的终极解决办法

原文 win8 远程桌面时提示凭证不工作问题的终极解决办法 环境说明 远程办公电脑(放置于公司.自用办公电脑.win8系统) 远程连接客户机(放置于家中.家庭日常所用.win8系统) 故障现象      最近在使用远程桌面连接公司的办公电脑时,突然发现win8系统总是无法连接成功,提示"你的凭证不工作",使用其他人的win7的连接也是出现这个问题.      有问题上百度,可百度好久发现千篇一律的做法基本如下所示      一,策略修改法,    1.在"开始"窗口

26个日文片假名导致Access搜索(80040e14/内存溢出)的解决办法

access|解决 补充最新修改版,使用Unicode的字符代码,而不是非unicode(负数值,有时会出错)代码 ゴ ガ ギ グ ゲ ザ ジ ズ ヅ デ ド ポ ベ プ ビ パ ヴ ボ ペ ブ ピ バ ヂ ダ ゾ ゼ 当字段内包含了这26个日文字符任意一个多个时,就会导致在执行SQL语句中包含了[字段] like '%aaaaa%' 或 inStr(1,[字段],'aaaaa',1)>0这样的查询时,毫无道理的出现了"Microsoft JET Database Engine 错误 '8

@Transactional导致AbstractRoutingDataSource动态数据源无法切换的解决办法

上午花了大半天排查一个多数据源主从切换的问题,记录一下: 背景: 项目的数据库采用了读写分离多数据源,采用AOP进行拦截,利用ThreadLocal及AbstractRoutingDataSource进行数据源切换,数据源代码如下: public class RoutingDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { return DB

小米1s充电时屏幕一直亮着不关闭的解决办法

小米1s充电时屏幕一直亮着不关闭,经常把充电器插进去后忘记锁屏,结果发现时,屏幕好热的说.   解决办法   ---设置--开发人员选项--保持唤醒状态(把勾去掉)   ok啦

谷歌被墙打不开导致WordPress网站访问变慢的解决办法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 前些天同志发现谷歌打不开了,经查询得知谷歌在香港的服务器已经搬回美国,所以导致在大陆打不开谷歌相关的所有网页和产品. 由于谷歌被墙,wordpress建站的一些同学也都发现网站打开速度相当的慢,我的网站亦如此,直到今天上午我的网站打开速度也很慢,果断一查,发现在加载的文件中还有一条代码是调用的谷歌的CSS. 今天我来说说怎么解决这个问题.其实

MyBatis启动时控制台无限输出日志的原因及解决办法_java

你是否遇到过下面的情况,控制台无限的输出下面的日志: Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. Logging initialized using 'class org.apache.ibatis.lo

shell脚本中执行时提示“没有那个文件或目录”的解决办法_linux shell

出现bad interpreter:No such file or directory的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来. 问题分析:1.将windows 下编写好的SHELL文件,传到linux下执行,提示出错.2.出错信息:bad interpreter: 没有那个文件或目录. 问题原因:因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符.脚本文件是DOS格式

CentOS Linux时出现GPT分区不能引导错误的解决办法

安装系统:CentOS 5.9_64bit时,分区后, 提示如下错误. 解决方法: 1.按ctrl+alt+F2 进入命令行 2.先查看分区 sh #fdisk -l 以下假设分区是/dev/sda 3.修改标签 (parted) select /dev/sda (parted) mklabel                 //提示默认是gpt,输入msdos,回车 (parted) print                       //查看到msdos,就说明成功了 (parted)