URL地址中含有点号导致参数解析错误的解决办法
来源:互联网 发布:人工智能替代人类 编辑:程序博客网 时间:2024/03/29 08:30
在Spring MVC中,Controller的配置如下:
@Controllerclass IndexController { @RequestMapping("/{ip}") public Model detail(@PathVariable("ip") String ip) { // 对IP进行处理 Model model = IpService.find(ip); return model; }}
前端的请求方式为:
let url = '/' + '192.168.1.1';$.getJSON(url, datas => { // 处理逻辑})
在实际的执行过程中,后台接收到的IP竟然为“192.168.1”,最后一个“.1”竟然被截断了,这是因为Spring MVC自动的路径解析策略导致的错误,具体的配置如下:
<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManager"> <constructor-arg> <array> <bean class="org.springframework.web.accept.HeaderContentNegotiationStrategy"/> <!-- 根据后缀名来决定请求的视图类型 --> <bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy"> <constructor-arg> <map> <entry key="xml" value="application/xml" /> <entry key="json" value="application/json" /> <entry key="html" value="text/html" /> <entry key="htm" value="text/html" /> <entry key="txt" value="text/plain" /> <entry key="xls" value="application/vnd.ms-excel" /> </map> </constructor-arg> </bean> </array> </constructor-arg></bean>
看到后缀名解析策略竟然具有如此多的功能,直接废除感到太可惜,那只好换种解决方法了,将@PathVariable改为@RequestParam,JAVA实现如下:
@Controllerclass IndexController { @RequestMapping("/") public Model detail(@RequestParam("ip") String ip) { // 对IP进行处理 Model model = IpService.find(ip); return model; }}
前端请求方式改为参数传递方式,如下:
let url = '/';$.getJSON(url, {ip:'192.168.1.1'}, datas => { // 处理逻辑})
再次更新程序,一切正常!
结论
在Spring MVC框架中,会将地址中的最后一个点号截断为后缀名,从而判断其请求消费的内容类型,在不改变此策略的情况下,修改请求方式与地址也能达到正确处理的目标。
阅读全文
0 0
- URL地址中含有点号导致参数解析错误的解决办法
- 在spring MVC中,@PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- python解析URL中含有特殊符号的地址
- 解决json参数中有参数是url地址导致json无法正确传输与解析
- iOS :url中含有特殊字符导致访问错误怎么办
- @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- Spring Boot @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- URL带多个参数&无法解析的解决办法!+
- url传递含有参数的参数
- JAVA中URL传递中文参数,\%解析 取值是乱码的解决办法
- 错误初始化参数导致无法启动的解决办法
- SpringMVC @PathVariable 中含有中文和点号
- 使用httpclient下载图片时,url中含有中文字符,导致下载失败的解决方法
- 对URL含有中文参数的转换
- 解析url中各个参数的值
- 新闻中含有日文平假名导致的Microsoft VBScript 运行时错误 (0x800A0005) 错误解决方法
- CSS之display与visibility
- MySQL索引的创建、删除和查看
- Java弱引用详解
- JVM——运行时数据区域
- MYSQL SELECT FOR UPDATE
- URL地址中含有点号导致参数解析错误的解决办法
- [BZOJ3242][NOI2013]快餐店-基环树-动态规划
- Vmware虚拟机安装Ubuntu 16.04 LTS(长期支持)版本+VMware tools安装
- 通讯录
- 分布式锁的三种实现方式
- 开博啦~
- javascript 根据给定的id集合查询对应的值,返回 json对象
- 【图解算法】排序算法——归并排序
- Java-String与其他数据类型的转换