我正在使用Spring 4.x进行Spring Rest Api项目
这有效:
Controller.java
@PostMapping("newTransaction")
TransactionRequestModel insertNewTransaction(@RequestBody TransactionRequestModel model){
//do something
}
TransactionRequestModel.java
public class TransactionRequestModel {
private int id;
private List<KeyValue> keyValueList;
public TransactionRequestModel(){}
//default constructor
//getter-setter
}
KeyValue.java
public class KeyValue {
String key;
String value;
//default constructor
//setter-getter
}
请求正文
{
"id": 1
"keyValueList": [
{
"key": "dummy",
"value": "dummy"
}
]
}
使用杰克逊的Spring消息转换器工作正常。
这不会:
当我将 TransactionRequestModel.java 更改为以下内容(并删除 KeyValue.java )时
public class TransactionRequestModel {
public class KeyValue {
String key;
String value;
//default constructor
//setter-getter
}
private int id;
private List<KeyValue> keyValueList;
public TransactionRequestModel(){}
//default constructor
//getter-setter
}
意味着,将 KeyValue设置 为 内部类 ,会出现以下错误。
org.springframework.http.converter.HttpMessageNotReadableException:无法读取文档:未找到类型[简单类型,类com.example.model.TransactionRequestModel
$ KeyValue]的合适构造函数:无法从JSON对象实例化(缺少默认构造函数或创建者,还是需要添加/启用类型信息?)
为什么?
SO中的所有相关文章都提到了第一种情况。我想知道为什么这行不通。请帮忙。
你必须使自己的内在阶级static
。
public class TransactionRequestModel {
public static class KeyValue {
String key;
String value;
//default constructor
//setter-getter
}
private int id;
private List<KeyValue> keyValueList;
public TransactionRequestModel(){}
//default constructor
//getter-setter
}
问题内容: 我无法使Spring MVC解决.html视图文件。 我具有以下视图文件夹结构: 我有一个简单的hello world控制器方法,该方法只显示一条消息并返回视图名称“ home”。我有一个home.jsp文件,但想改用home.html。 当我击中spaceships/home时,控制器会打印出“ hello world”消息,并且我看到home.jsp视图没有问题。 问题是当我将后缀
生成的对象不能是对象的,而是任何类型的,它包含与示例相同的值--只是转换为number。 我必须指定我自己的Jackson反序列化器吗(我怎么做?)对于这个问题,还是改变构造函数就足够了?
问题内容: 在我的applicationContext.xml中,这就是将xml映射到POJO的方式。如何将目录映射到类文件而无需创建xml? 问题答案: 您可以通过转换进一步简化操作 至 现在您的包中所有带有注释的类都将自动被拾取。
POJO类: 控制器: JSON请求: 问题: 当我处理请求时,我收到一个空的TransactionDto对象。 System.out.println(transactionDto) TransactionDto(id=null,userName=null,apiKey=null,amount=0,accountNumber=null,expirationDate=null,cscCode=nul
问题内容: 我正在尝试为作为JSON传入的对象创建内部类类型,但是尽管我在此处以及杰克逊的网站上都读了很多文章,但我似乎无法获得正确的组合,因此,如果其他人有任何指针,他们将不胜感激。我在下面发布了一些代码片段,并删除了所有的getter和setter,但我不认为他们需要发布。我正在使用Jackson 2.2。 我正在尝试反序列化的类: 我用来反序列化的代码: 我的JSON测试数据: 问题答案:
我是spring+MVC的新手。我找到了一个脚本,我可以运行这个脚本的一部分。这个脚本配置spring mvc没有xml,在Java方面.我将所有的jar放入web-inf/lib。 控制器配置.Java WebAppInitializer.java HomeController.java FilmController.java film.java 我有两个问题: 如果我写“http://loca
我正在尝试使用spring MVC。我的问题是,在我的控制器中没有请求映射工作,只有我的主页链接:“/”工作。 我的web.xml文件是: 2019年5月9日下午4:55:42 org.springframework.web.servlet.dispatcherservlet noHandlerFound警告:GET/springmvc/showform没有映射
卡桑德拉表列: Java实体: 当执行从表列“pickuploc”中选择查询时,并没有完全映射到实体中定义的picupLocal属性。 这是我得到的回应: 使用Spring数据卡桑德拉1.5.8