Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在spring-servlet.xml中为@RequestBody转换配置jackson对象映射器?_Java_Spring Mvc_Jackson Databind - Fatal编程技术网

Java 如何在spring-servlet.xml中为@RequestBody转换配置jackson对象映射器?

Java 如何在spring-servlet.xml中为@RequestBody转换配置jackson对象映射器?,java,spring-mvc,jackson-databind,Java,Spring Mvc,Jackson Databind,我想显示一个服务器端ajax数据表。为此,我需要从控制器获取数据 我的请求如下表所示: var form = { "order":"12r34e56e", "state":"open"} 我的控制器应该将其解析为一个对象,我可以将其发送到Web服务并从列表中的订单接收所有打开的包。接收到的列表还必须转换为JSON格式才能在表中显示 我的头看起来像 ?{%22orderNummer%22:%2212r34e56e%22}&{=1563526347735 我已成功尝试使用RequestParam

我想显示一个服务器端ajax数据表。为此,我需要从控制器获取数据

我的请求如下表所示:

var form = { "order":"12r34e56e", "state":"open"} 
我的控制器应该将其解析为一个对象,我可以将其发送到Web服务并从列表中的订单接收所有打开的包。接收到的列表还必须转换为JSON格式才能在表中显示

我的头看起来像

?{%22orderNummer%22:%2212r34e56e%22}&{=1563526347735

我已成功尝试使用RequestParam。但是我的表单包含了更多的过滤参数,比如date1、date2、Address等等。所以变量太多了。 我试着去诠释,但徒劳无功

consumes=MediaType.APPLICATION_JSON_VALUE
我没有更改表单对象类PreparedStatement,因为在没有ajax的情况下提交表单很好

在我的pom.xml中

我的ajax调用

我的JSON是有效的。我试过了 但我明白了

分析HTTP请求头时出错。在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义

我想我需要在spring-servlet.xml中配置Jackson的ObjectMapper,但我不知道怎么做。

我解决了自己的问题。 首先,我必须在Tomcat server.xml连接器中添加relaxedQueryChars='{}'

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" relaxedQueryChars='{}' />
接下来:Spring不允许RequestMethod.GET使用RequestBody。所以我改成了POST,它很管用。因为:

<mvc:annotation-driven /> 

我不必对jackson objectmapper进行任何配置。

供您自行试用。。荣誉
"ajax": {
    type: "GET",
    url: "${pageContext.request.contextPath}/getTableData",
    contentType:"application/json",
    dataType:"json",
    data: function(data) {
                var form = { "order":"12r34e56e", "state":"open"} 
                return JSON.stringify(form);
          }
    }
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" relaxedQueryChars='{}' />
<mvc:annotation-driven />