java – Spring MVC:复杂对象作为参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring MVC:复杂对象作为参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2106字,纯文字阅读大概需要4分钟。
内容图文
![java – Spring MVC:复杂对象作为参数](/upload/InfoBanner/zyjiaocheng/781/796dd075751141d7a4dda83254a8175c.jpg)
我开始学习弹簧靴,我遇到了问题.我有以下代码:
@RestController
public class UserController {
@RequestMapping("/")
public String getMessageInfo(Message message) {
return "Id is " + message.getId() + ", message is " + message.getMessage() + ", parameter good is " + message.isGood();
}
}
课程信息:
public class Message {
private String message;
private int id;
private boolean good;
public Message() {}
public Message(int id) {this.id = id;}
public Message(String message) {this.message = message;}
public Message(boolean good) {this.good = good;}
public Message(String message, boolean good, int id) {
this.message = message;
this.good = good;
this.id = id;
}
public String getMessage() {
return message;
}
public int getId() {
return id;
}
public boolean isGood() {
return good;
}
}
当我尝试做这样的事情时:
RestTemplate request = new RestTemplate();
String info = request.getForObject("http://localhost:8080/?id=4", String.class);
id的值被忽略.当我使用boolean good参数发送请求时出现相同的问题(例如localhost:8080 /?good = true).它被称为默认构造函数而不是Message(boolean)/ Message(int).但是,当我执行像localhost:8080 /?message = 1234之类的操作时,它不会被忽略.你能解释一下我的问题是什么吗?
还有一个问题:我可以以不同于localhost的方式向getMessageInfo发送类消息的实例:8080 /?message = 1234& good = true& id = 145?如果我有超过3个参数?例如,如果类Message有100个参数?
解决方法:
因为你正在尝试处理一个复杂的对象,所以从一个post请求中接受你的对象.
@RequestMapping("/",method=RequestMethod.POST)
public String getMessageInfo(@RequestBody Message message) {
return message;
}
在上面的代码中,我将方法属性设置为POST,然后在您发出POST请求时将调用它,并且我在方法参数中使用@RequestBody Message消息.这将转换并从传入的请求中形成一个Message对象,如果你没有放置@requestBody注释,那么Bean将通过spring注入到方法中,而不是从请求中形成一个.
您可以尝试使用此代码来发出请求
final String uri = "http://localhost:8080/";
Message message = new Message(1, "Adam",true);
RestTemplate restTemplate = new RestTemplate();
Message result = restTemplate.postForObject( uri, message, Message.class);
在发出请求时创建一个Message对象,设置其中的每个字段,否则最终会出现Bad request错误.
内容总结
以上是互联网集市为您收集整理的java – Spring MVC:复杂对象作为参数全部内容,希望文章能够帮你解决java – Spring MVC:复杂对象作为参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。