我有一個使用spring-mvc 3.0的應用程序。 該控制器被配置是這樣的:處理Spring-mvc的post參數中的特殊字符
@RequestMapping(value = "/update", method = RequestMethod.POST)
public ModelAndView updateValues(
@RequestParam("einvoiceId") String id){
...}
投遞包含特殊字符的ID(在這種情況下管|),網址編碼使用UTF-8(ID = 000025D26A01%7C2014174)將字符串ID將包含%7C。我期待spring-mvc能夠對參數進行url解碼。我知道我可以通過使用
java.net.URLDecoder.decode()
但由於我有大量的控制器, 我已經配置了Tomcat連接器URIEncoding="UTF-8"
並配置了一個CharacterEncodingFilter
,但據我瞭解,這隻會影響GET請求。 關於如何讓spring-mvc url解碼我的發佈參數的任何想法?
感謝您的回答。不過,我已經在使用'org.springframework.web.filter.CharacterEncodingFilter'。它所做的就是'request.setCharacterEncoding'。我的請求已經有UTF-8,但它不能將特殊字符轉換爲%7C。 – jakobklamra
也許你需要看看這裏http://tech.top21.de/techblog/ 20100421-solving-problems-with-request-parameter-encoding.html; jsessionid = DAC7E8A568ED4EF9EB181BCDC785B010 –
frytaz
非常感謝。問題已經解決,事實證明這是我的錯。我一直在使用Chromes Rest Console進行測試。這個插件自動編碼參數,這意味着我的參數雙編碼。我的錯。它確實證實我的設置是正確的。感謝所有反饋。 – jakobklamra