這篇文章帶給大家的內容是關於Spring MVC無法正常取得參數的值的解決方法(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
最近在開發時遇到一個非常奇怪的問題,在tomcat8中使用Spring MVC框架,在Controller中的方法參數無法正常取得到對應的值,將tomcat版本換成7.0就解決了。
記錄下列解決過程,先上圖:
#
##專案採用ssm架構,這裡取得不到參數password的值,在網路上查詢相關資料,得到以下幾個解決方法,但都沒有什麼效果:1.使用@RequestParam註解給password參數加上了RequestParam註解後,調試依然無法取得到password的值,將required的值改為true,直接報錯了,錯誤的意思就是缺少password參數,可是明明傳了參數的啊,為什麼還說缺少參數呢,難道是沒能夠辨識到我傳的參數?這時候考慮到可能是傳參方式的問題。更改了一下傳參方式,將password的值附加到url後面,就像GET請求那樣傳參。果然是這個原因,參數的值能夠接收到了。不過使用這種傳參方式,不加RequestParam註解也能夠接收到參數的值。雖然這種方法能夠接收接收到參數的值了,但我無法忍受POST的這種傳參方式,於是接著尋找下一個方法##以這種方式修改好了代碼,再次重啟tomcat,使用Postman調用,然後再次報了一個異常:
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded' not supported
異常的大概意思是不支援content type為application/x-www-form-urlencoded這種類型,一般透過表單提交的資料預設就是這種類型,猜測可能是RequestBody註解的原因,於是又換了一種傳參方式:使用JSON格式傳遞資料
#
使用這種傳參方式,果然能夠接收參數的值了,不過接收參數的方式和傳參方式都變得複雜了。這個專案是我從公司拷回家繼續寫的,在公司的時候調試一切正常,回家就不行了,百思不得其解,同樣的程式碼,改都沒改過,為什麼回到家就出問題了呢?既然程式碼都是一樣的,運行結果不一樣,那就只能說明運行的環境改變了。那麼到底是哪裡的環境不一樣呢?出了這種問題,首先考慮資料庫的結構,不過家裡電腦資料庫版本和公司電腦是一致的,而且資料都是從公司直接拷回來的,所以直接排除資料庫的原因,更何況這是在Controller中接收不到參數,還沒到存取資料庫的那一步,就更不可能與資料庫有關係了,所以直接排除資料庫的原因。由於專案是由maven建置的,相關的jar包都是maven自動去下載的,於是懷疑會不會是maven自動下載下來的jar包有問題,然後把本地倉庫的jar包全部刪除,讓maven從新去下載,就這樣重複了幾次,問題依然存在,不得已只好暫時排除maven的原因。最後實在想不到其他的原因了,便開始懷疑tomcat的原因,公司tomcat是7.0版本的,家裡的tomcat是8.0版本的,雖然兩個tomcat版本不一致,不過並沒有下意識就覺得一定是tomcat版本的原因,畢竟潛意識裡認為8.0一定是7.0之後功能的升級。雖然這樣想,但還是抱著死馬當活馬醫的心態去測試,在tomcat官網下載7.0版本的壓縮包,然後配好相應的環境,用postman調用,結果就是這麼意外,參數值獲取到了? ! ! !還真是tomcat版的原因?這感覺也太坑了吧。 。 。 。看來盲目的追求高版本並不是好事【相關推薦:Java教學】
以上是Spring MVC不能正常取得參數的值的解決方法(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Java'splatFormIndependecemeansDeveloperScanWriteCeandeCeandOnanyDeviceWithouTrecompOlding.thisAcachivedThroughThroughTheroughThejavavirtualmachine(JVM),WhaterslatesbyTecodeDecodeOdeIntComenthendions,允許univerniverSaliversalComplatibilityAcrossplatss.allospplats.s.howevss.howev

要設置JVM,需按以下步驟進行:1)下載並安裝JDK,2)設置環境變量,3)驗證安裝,4)設置IDE,5)測試運行程序。設置JVM不僅僅是讓其工作,還包括優化內存分配、垃圾收集、性能調優和錯誤處理,以確保最佳運行效果。

toensurejavaplatFormIntence,lofterTheSeSteps:1)compileAndRunyOpplicationOnmultPlatFormSusiseDifferenToSandjvmversions.2)upureizeci/cdppipipelinelikeinkinslikejenkinsorgithikejenkinsorgithikejenkinsorgithikejenkinsorgithike forautomatecross-plateftestesteftestesting.3)

javastandsoutsoutinmoderndevelopmentduetoitsrobustfeatureslikelambdaexpressions,streams,andenhanced concurrencysupport.1)lambdaexpressionssimplifyfunctional promprogientsmangional programmanging,makencodemoreconciseandable.2)

Java的核心特點包括平台獨立性、面向對象設計和豐富的標準庫。 1)面向對象設計通過多態等特性使得代碼更加靈活和可維護。 2)垃圾回收機制解放了開發者的內存管理負擔,但需要優化以避免性能問題。 3)標準庫提供了從集合到網絡的強大工具,但應謹慎選擇數據結構以保持代碼簡潔。

Yes,Javacanruneverywhereduetoits"WriteOnce,RunAnywhere"philosophy.1)Javacodeiscompiledintoplatform-independentbytecode.2)TheJavaVirtualMachine(JVM)interpretsorcompilesthisbytecodeintomachine-specificinstructionsatruntime,allowingthesameJava

jdkincludestoolsfordEveloping and compilingjavacode,whilejvmrunsthecompiledbytecode.1)jdkcontainsjre,編譯器,andutilities.2)

Java的關鍵特性包括:1)面向對象設計,2)平台獨立性,3)垃圾回收機制,4)豐富的庫和框架,5)並發支持,6)異常處理,7)持續演進。 Java的這些特性使其成為開發高效、可維護軟件的強大工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3漢化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版