尝试使用 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) 我正在尝试在我的 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/*过滤匹配模式的请求,但过滤对任何资源的请求。
我如何映射我的过滤器?
谢谢。
几个星期前我开始学习一些函数式编程,我正在尝试从一个映射列表到一个列表中的映射,考虑到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)
但是,它仍然无法正常工作.我没有得到重点,因为我期望将元素附加到空列表中
我想根据某些功能的结果创建一个列表.在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在满足一个条件后中断)将元素附加到列表中.
我应该采用哪种方式来实现这一目标?
我有一个地图变量,我想将其简化为单个字符串。
我的变量看起来像:
my_map = {
key1 = "value1"
key2 = "value2"
key3 = "value3"
}
Run Code Online (Sandbox Code Playgroud)
我希望将其减少到key1:value1,key2:value2,key3:value3。
检查 terraform 文档,我找不到任何缩小地图的功能,但可能我遗漏了一些东西。
任何帮助,将不胜感激。