Spring MVC不能正常取得參數的值的解決方法(附程式碼)
這篇文章帶給大家的內容是關於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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

2023年,AI技術已成為熱門話題,對各行業產生了巨大影響,程式設計領域尤其如此。人們越來越認識到AI技術的重要性,Spring社群也不例外。隨著GenAI(GeneralArtificialIntelligence)技術的不斷進步,簡化具備AI功能的應用程式的創建變得至關重要和迫切。在這個背景下,"SpringAI"應運而生,旨在簡化開發AI功能應用程式的過程,使其變得簡單直觀,避免不必要的複雜性。透過"SpringAI",開發者可以更輕鬆地建立具備AI功能的應用程序,將其變得更加易於使用和操作

Spring+AI作為行業領導者,透過其強大、靈活的API和先進的功能,為各種行業提供了領先性的解決方案。在本專題中,我們將深入探討Spring+AI在各領域的應用範例,每個案例都將展示Spring+AI如何滿足特定需求,實現目標,並將這些LESSONSLEARNED擴展到更廣泛的應用。希望這個專題能對你有所啟發,更深入地理解和利用Spring+AI的無限可能。 Spring框架在軟體開發領域已經有超過20年的歷史,自SpringBoot1.0版本發布以來已有10年。現在,無人會質疑,Spring

spring編程式事務的實作方式:1、使用TransactionTemplate;2、使用TransactionCallback和TransactionCallbackWithoutResult;3、使用Transactional註解;4、使用TransactionTemplate和@Transactional結合使用;5、自訂事務管理器。

java實作定時任務Jdk自帶的函式庫中,有兩種方式可以實作定時任務,一種是Timer,另一種是ScheduledThreadPoolExecutor。 Timer+TimerTask建立一個Timer就建立了一個線程,可以用來調度TimerTask任務Timer有四個建構方法,可以指定Timer線程的名字以及是否設定為守護線程。預設名字Timer-編號,預設不是守護線程。主要有三種比較重要的方法:cancel():終止任務調度,取消目前調度的所有任務,正在運行的任務不受影響purge():從任務團隊

SpringBoot和SpringCloud都是SpringFramework的擴展,它們可以幫助開發人員更快地建置和部署微服務應用程序,但它們各自有不同的用途和功能。 SpringBoot是一個快速建立Java應用程式的框架,讓開發人員可以更快地建立和部署基於Spring的應用程式。它提供了一個簡單、易於理解的方式來建立獨立的、可執行的Spring應用

Spring設定事務隔離等級的方法:1、使用@Transactional註解;2、在Spring設定檔中設定;3、使用PlatformTransactionManager;4、在Java配置類別中設定。詳細介紹:1、使用@Transactional註解,在需要進行事務管理的類別或方法上加入@Transactional註解,並在屬性中設定隔離等級;2、在Spring設定檔等等。

作為一名Java開發者,學習和使用Spring框架已經是一項必不可少的技能。而隨著雲端運算和微服務的盛行,學習和使用SpringCloud成為了另一個必須掌握的技能。 SpringCloud是一個基於SpringBoot的用於快速建立分散式系統的開發工具集。它為開發者提供了一系列的元件,包括服務註冊與發現、配置中心、負載平衡和斷路器等,使得開發者在建構微

隨著技術的更新迭代,Java5.0開始支援註解。而作為java中的領導框架spring,自從更新了2.5版本之後也開始慢慢捨棄xml配置,更多使用註解來控制spring框架。
