小编ped*_*eis的帖子

Spring MVC 和 jackson 不支持内容类型“application/json”

尝试使用 Spring MVC 接收发布请求时,出现错误(处理程序执行导致异常:不支持内容类型“application/json”)。

我的 Json 只是用于测试,非常简单:

{ "test": "abc123" }
Run Code Online (Sandbox Code Playgroud)

我的 pojo 类:

public class Request {

    String test;

    public String getTest() {
        return test;
    }

    public void setTest(String test) {
        this.test = test;
    }

}
Run Code Online (Sandbox Code Playgroud)

还有我的控制器:

@RequestMapping(value = "/testing", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
private void testing(@RequestBody Request body, @RequestHeader HttpHeaders headers, HttpServletRequest httpRequest) {
    System.out.println(body.getTest());
}
Run Code Online (Sandbox Code Playgroud)

在我的 pom.xml 中,我添加了:

<dependencies>
    ...
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.8.5</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.4.3</version>
    </dependency> …
Run Code Online (Sandbox Code Playgroud)

java spring json spring-mvc

7
推荐指数
2
解决办法
5万
查看次数

Spring WebFilter 映射

我正在尝试在我的 spring 应用程序中添加一个 WebFilter。但是,我没有使用 .xml 文件(甚至不是 web.xml,因为我的应用程序不需要它)。

所以,我在我的类中添加了扩展AbstractAnnotationConfigDispatcherServletInitializer

@Override
protected Filter[] getServletFilters() {
    return new Filter[]{new RequestFilter()};
}
Run Code Online (Sandbox Code Playgroud)

而且,我的 RequestFilter.java:

@WebFilter("/test/*")
public class RequestFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException { }

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException { }

@Override
public void destroy() { }
Run Code Online (Sandbox Code Playgroud)

我期望只/test/*过滤匹配模式的请求,但过滤对任何资源的请求。

我如何映射我的过滤器?

谢谢。

java spring spring-mvc servlet-filters

3
推荐指数
1
解决办法
1万
查看次数

通过clojure将地图列表缩减为列表

几个星期前我开始学习一些函数式编程,我正在尝试从一个映射列表到一个列表中的映射,考虑到clojure中的特定键.

我的地图列表如下: '({:a "a1" :b "b1" :c "c1"} {:a "a2" :b "b2" :c "c2"} {:a "a3" :b "b3" :c "c3"})

我想要的输出是:'("b1" "b2" "b3").

我尝试过以下方法:

(doseq [m maps]
  (println (list (get m :b))))
Run Code Online (Sandbox Code Playgroud)

我的输出是一个列表列表(我正在为每次迭代创建一个列表,这是预期的).所以我的问题是,如何将其减少到一个列表?

更新

刚试过以下内容:

(let [x '()]
  (doseq [m map]
    (conj x (get m :b))))
Run Code Online (Sandbox Code Playgroud)

但是,它仍然无法正常工作.我没有得到重点,因为我期望将元素附加到空列表中

clojure

3
推荐指数
1
解决办法
111
查看次数

将值累积到列表中

我想根据某些功能的结果创建一个列表.在Java(我的背景)中,我会做类似的事情:

List<String> messages = ...

if(condition 1)
   messages.add(message 1);

if(condition 2)
   messages.add(message 2);

...

if(condition N)
   messages.add(message N);
Run Code Online (Sandbox Code Playgroud)

在clojure中,我想我需要使用let如下所示创建一个列表(只是虚拟示例):

(let [result
  (vec
    (if (= 1 1) "message1" "message2")
    (if (= 1 0) "message3" "message4"))]
result)
Run Code Online (Sandbox Code Playgroud)

我也检查了cond但是我需要考虑所有的验证(cond在满足一个条件后中断)将元素附加到列表中.

我应该采用哪种方式来实现这一目标?

clojure

1
推荐指数
1
解决办法
137
查看次数

将地形中的地图减少为字符串

我有一个地图变量,我想将其简化为单个字符串。

我的变量看起来像:

my_map = {
  key1 = "value1"
  key2 = "value2"
  key3 = "value3"
}
Run Code Online (Sandbox Code Playgroud)

我希望将其减少到key1:value1,key2:value2,key3:value3

检查 terraform 文档,我找不到任何缩小地图的功能,但可能我遗漏了一些东西。

任何帮助,将不胜感激。

terraform

1
推荐指数
1
解决办法
4126
查看次数

标签 统计

clojure ×2

java ×2

spring ×2

spring-mvc ×2

json ×1

servlet-filters ×1

terraform ×1