Java Tomcat/Spring-未解码获取参数

Java Tomcat/Spring-未解码获取参数,java,spring,tomcat,urlencode,url-encoding,Java,Spring,Tomcat,Urlencode,Url Encoding,出于某种原因,我的Tomcat/Spring配置没有自动解码GET参数(我认为应该自动完成) 以下是我的设置: @RestController 公共类MyController{ @RequestMapping(value=“/do something”,method=RequestMethod.GET) 公共字符串doSomething(RequestPojo-req){ //req.getPhone——未解码,即可能是00%204而不是004 } } 公共类RequestPojo{ 私人电话;

出于某种原因,我的Tomcat/Spring配置没有自动解码GET参数(我认为应该自动完成)

以下是我的设置:

@RestController
公共类MyController{
@RequestMapping(value=“/do something”,method=RequestMethod.GET)
公共字符串doSomething(RequestPojo-req){
//req.getPhone——未解码,即可能是00%204而不是004
}
}
公共类RequestPojo{
私人电话;
//接二连三
}
以下是mvc dispatcher servlet的内容:


在发布之前,我检查了一些建议。
URIEncoding=“UTF-8”
在Tomcat的server.xml中指定

有什么线索吗? 如有任何帮助/建议,将不胜感激


提前谢谢。

请尝试使用@modeldattribute

public String doSomething(@ModelAttribute RequestPojo req) { // req.getPhone -- is not decoded, ie might be something like 00%204 instead of 004 } 公共字符串doSomething(@modeldattribute RequestPojo req){ //req.getPhone——未解码,即可能是00%204而不是004 }
相关:
00%204
004
不同。它与
004
相同。可能您的参数正在双重编码?是的,对不起,它应该是“00 4”。不,我的参数没有编码为twice1。您不需要为JSON配置消息转换器。只要jacksonjar是类路径,就会自动支持这个消息转换器,所以我会从配置中删除它。2.我认为“supportedMediaTypes”应该是“application/json”而不是“application/json;charset=utf-8”。如果要将其设置为媒体类型,则必须在标头中将其设置为ContentType值,而不是“application/json”3。如果它仍然不起作用,我会尝试将doSomething(RequestPojo-req)更改为doSomething(@RequestBody-RequestPojo-req)。如果这没有什么区别,那么我将开始详细查看请求,因为内容的输入方式或标题的传递方式可能有问题。