将x-www-form-urlencode数据发布到Spring。这是有效的:
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public void sumbitFUD(@RequestBody final MultiValueMap<String, String> formVars) {
}
另一方面,这给出了一个例外:
不支持内容类型'application/x-www-form-urlencoded;charset=utf-8'
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public void sumbitFUD(@RequestBody Fud fud) {
}
这将导致bean上的所有字段为空:
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public void sumbitFUD(Fud fud) {
//not using @RequestBody
}
FUD:
public class Fud {
public String token_id;
public String team_doamin;
public String channel_id;
public String user_id;
public String user_name;
public String command;
public String text;
public String response;
}
表单数据:
token%abc=&team_id%3DT0001=&team_domain%3Dexample=&channel_id%3DC2147483705=&channel_name%3Dtest=&user_id%3DU2147483697=&user_name%3DSteve=&command%3D%2Fweather=&text%3D94070=&response_url%3Dhttps=%2F%2Fhooks.slack.com%2Fcommands%2F1234%2F5678
POM:
<dependencies>
<dependency>
<groupId>net.gpedro.integrations.slack</groupId>
<artifactId>slack-webhook</artifactId>
<version>1.3.0</version>
</dependency>
<!-- Spring Frameworks for Web, MVC and Mongo -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<scope>test</scope>
</dependency>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
我在这里看到了两个问题。
>
使用@requestbody
注释。它,或者更准确地说,它的处理程序--HttpMessageConverter
的子类,不能处理这些情况。您应该处理@modelattribute
。
二传手的缺席。Spring不能在没有setter的情况下为目标实例设置值。我不知道是否有一个属性可以直接与字段一起操作,但我建议避免这样做。使字段私有
。
我使用http://jsonlint.com来验证JSON是否有效。因此,我要么需要更改JSON或代码,要么可能两者都需要。有什么想法吗?
我能够使用Json输出运行Jersey,并且能够在没有任何问题的情况下使用Json映射获得“get”请求。 我也有一些JSON方法,它们是“post”方法,它们映射到Java类,如下面的方法- 供您参考,我在这里或这里遵循指南 在给出一个有效的post请求时,它们都开始抛出下面的错误-
我正在使用Spring boot starter项目与maving pluging,Spring boot不能知道我的HTML模板中的链接。这是我的控制器: 这是authentification.html: 下面是我的项目的层次结构快照: https://fbcdn-sphotos-f.a.akamaihd.net/hphotos-ak-xfp1/v/t1.0-9/11011221_8112660
问题内容: 我已经通过ElasticSearch Sense浏览器插件创建了以下索引,并且还创建了C#Nest Fluent映射。我可以在nGrams过滤器上表达Nest中除“ token_chars”以外的所有内容。我没有在C#嵌套上获得强类型属性来添加“ token_chars”。有人遇到过同样的问题吗? json和c#设置如下所示。请帮忙 我没有在C#嵌套上获得强类型属性来添加“ token
错误: 我希望在列表中映射相同的字段名,而不需要另一个单独的方法,就像在另一个项目中使用旧的版本时一样。
例如,我有以下接口映射器: 在代码中,您可以看到映射和一些默认方法,其中包含其他映射。如何在Mapstruct映射中使用这些方法,以便Mapstruct使用这些方法在字段中填充值?