為什麼springmvc請求引數中的點後面的引數沒了
Springmvc框架下使用restful API時後面連結最後的點丟失情況的處理
大概原因分析如下:
- 在Spring MVC初始化的時候會把@RequestMapping解析生成請求url與對應頁面控制器的關聯關係 – Spring MVC @RequestMapping
- 當用戶傳送一個請求時來到前端控制器,前端控制器根據請求url來決定使用哪個頁面控制器(也就是@Controller類中的@RequestMapping方法)進行處理並把請求委託給HanderAdpter。– Spring MVC DispatcherServlet
- 在呼叫這個頁面控制器的前後會涉及到攔截器的呼叫,也就是HandlerIntercepter。
在呼叫完成頁面控制器之後會返回ModelAndView物件。 最後通過頁面渲染器(ViewResolver)把對應的頁面模板以及資料進行渲染返回給請求。 - 其實在呼叫hander方法前後有2個動作就是對於HandlerMethod裡面的請求引數解析(HandlerMethodArgumentResolver)以及返回引數解析(HandlerMethodReturnValueHandler)。現在主要的是討論請求引數解析。
但是Spring MVC中,在路徑引數中如果帶”.”的話“.”後面的值將會被忽略。例如訪問http://www.wlgdo.com/hido/index.do。Spring MVC就會把“.”後面的do忽略。
網上有很多解決方案,但是都不是最合理的方案,最合理的方案是使用SpEL即可以處理該情況:如下程式碼
/**
* 更新使用者電錶資訊
*
* @author Ligang.Wang[[email protected]]
* @date 2018年1月20日下午9:07:08
* @param room
* @param user
* @return
*/
@RequestMapping(value = "owner/elect/{room}/{electfee:.+}", method = RequestMethod.GET)
public Object updateOwnerEletic(@PathVariable String room, @PathVariable String electfee) {
log.info("更新使用者電費:{},{}" , room, electfee);
Owner owner = ownerrService.update(new Owner(room, electfee, null));
if (owner != null) {
return new Resp(RespCode.SUCCESS, owner);
}
return new Resp("-1", "更新失敗");
}
至此,你的所有的需求不受其他影響得解決了。
相關推薦
為什麼springmvc請求引數中的點後面的引數沒了
Springmvc框架下使用restful API時後面連結最後的點丟失情況的處理 大概原因分析如下: 在Spring MVC初始化的時候會把@RequestMapping解析生成請求url與對應
VolleyPost請求,陣列形式的引數有的手機提交不了
VolleyPost請求,陣列形式的引數有的手機提交不了,試了好多次,才發現可能陣列傳的有問題,先貼錯誤程式碼: HashMap<String, Object> params = new HashMap<>(); params.put("
SpringMVC請求引數繫結(用法)
目錄 1.把請求資料封裝到JavaBean類中 (1)自定義一個JavaBean類 package com.heima.domain; import java.io.Serializ
springmvc請求引數獲取的幾種方法
1、直接把表單的引數寫在Controller相應的方法的形參中,適用於get方式提交,不適用於post方式提交。 /** * 1.直接把表單的引數寫在Controller相應的方法的形參中 * @param username
springmvc 通過異常增強返回給客戶端統一格式 springmvc請求引數異常處理
本文轉載於:http://www.cnblogs.com/nosqlcoco/p/5562107.html 在springmvc開發中,我們經常遇到這樣的問題;邏輯正常執行時返回客戶端指定格式的資料,比如json,但是遇NullPointerException空指標
SpringMVC——請求傳參和支援的Servlet原生引數
SpringMVC 會按照請求引數名和POJO屬性名進行自動匹配, 自動為該物件填充屬性值,同時還支援級聯屬性, 例如這裡面的User是一個POJO, 裡面包含的屬性包括String name; int age;Address address; Address裡面包含的屬性比如有
springmvc為請求處理器的目標引數賦值的過程
↓在invokeHandlerMethod()方法中呼叫resolveHandlerArguments()方法↓ Object[] args = resolveHandlerArguments(handlerMethodToInvoke, handler,
SpringMVC接收JSON請求引數時指定引數對映到Bean中的某個成員屬性的方法
在使用SpringMVC的時候如果前臺傳過來的請求引數與Bean成員變數都採用駝峰式規範(使用@RequestBody接收的JSON請求也一樣),則SpringMVC會自動將請求引數對映到Bean成員變數。 但如果前臺傳過來或者呼叫服務api的json使用下劃線的變數命名方
SpringMVC請求引數接收總結
前提 在日常使用SpringMVC進行開發的時候,有可能遇到前端各種型別的請求引數,這裡做一次相對全面的總結。SpringMVC中處理控制器引數的介面是HandlerMethodArgumentResolver,此介面有眾多子類,分別處理不同(註解型別)的引數
SpringMVC請求處理之對方法引數的處理
前言 講完了DispatchServlet(也可以說是SpringMVC框架)的初始化之後,我們再接著看DispatchServlet處理請求的原理,也可以說是SpringMVC處理請求的原理。今天就先來看看SpringMVC對方法引數的處理。 我們
springmvc請求接收引數的幾種方法
package com.sondon.mayi.controller; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletReq
springboot重寫SpringMVC請求引數裝載
詳細原理解析參考恆宇少年:https://segmentfault.com/a/1190000011406515 本文只做將請求引數名轉下劃線的實現,資料裝載的實現使用反射,讓程式碼更為簡練。 1.
SpringMVC學習(一)引數繫結,自定義轉換器,處理請求亂碼
一、註解對映器和介面卡 1,元件掃描器 使用元件掃描器省去在spring容器配置每個controller類的繁瑣。 <!--開啟註解掃描 --> <context:component-scan base-package="com.
SpringMVC 請求引數繫結
什麼是請求引數繫結 請求引數格式 預設是key/value格式,比如:http:xxxx?id=1&type=2 請求引數值的資料型別 都是字串型別的各種值 請求引數值要繫結的目標型別 Controller類中的方法引數,比如簡單型別、POJO型別、集合型別等。 SpringMVC內建的引
SpringMVC請求引數接收總結(一)
前提 在日常使用SpringMVC進行開發的時候,有可能遇到前端各種型別的請求引數,這裡做一次相對全面的總結。SpringMVC中處理控制器引數的介面是HandlerMethodArgumentResolver,此介面有眾多子類,分別處理不同(註解型別)的引數,下面只列舉幾個子類: RequestParam
原!tomcat啟動超時(打印了幾行日誌,後面沒了。也不報錯,處於啟動狀態,直到超時)
str tro 啟動項 dao 配置 spa 配置文件 size 結果 項目框架:spring+struts2+mybatis 今天優化代碼,改了一堆mybatis dao和xml文件,啟動項目時,就出現如標題描述的狀況:打印了幾行日誌,後面就不打印了,也不報錯,處於啟動狀
Android小知識-剖析Retrofit中的網路請求流程以及相關引數
本平臺的文章更新會有延遲,大家可以關注微信公眾號-顧林海,包括年底前會更新kotlin由淺入深系列教程,目前計劃在微信公眾號進行首發,如果大家想獲取最新教程,請關注微信公眾號,謝謝! 在使用Retrofit時,需要建立Retrofit的例項,定義一個網路請求介面併為介面中的方法添加註解,接著通過動
jQuery非同步請求ajax()之complete引數詳解
請求完成後回撥函式 (請求success 和 error之後均呼叫)。這個回撥函式得到2個引數:XMLHTTPRequest) 物件和一個描述請求狀態的字串("success", "notmodified", "nocontent","error", "timeout", "abort", 或者 "
三十九、python學習之Django框架(二):請求、URL路徑引數、查詢字串、請求體(表單,非表單)、請求頭
一、請求 1.flask中,利用HTTP協議想伺服器傳參的幾種途徑 1.1 提取URL的特定部分,可以在伺服器端的路由中用正則表示式擷取: 如:/weather/2018 //前端傳送請求: $.ajax({ url:'http://www.baidu.com/
C# 定義了 7 種變數類別:靜態變數、例項變數、陣列元素、值引數、引用引數、輸出引數和區域性變數
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!