SpringMVC到SpringREST教程
我已经开发了一个SpringMVC-Hibernate应用程序 现在,我正试图修改这段代码以创建一个REST应用程序 我已将SpringMVC到SpringREST教程,spring,model-view-controller,rest,Spring,Model View Controller,Rest,我已经开发了一个SpringMVC-Hibernate应用程序 现在,我正试图修改这段代码以创建一个REST应用程序 我已将Jackson库添加到类路径,并添加了@XmlRootElement @XmlRootElement(name = "persons") public class Person implements Serializable { 但是如果我做了一个application/json请求,那么我仍然会得到html代码 我做错了什么/忘了做什么? 我的控制器: @Req
Jackson
库添加到类路径,并添加了@XmlRootElement
@XmlRootElement(name = "persons")
public class Person implements Serializable {
但是如果我做了一个application/json
请求,那么我仍然会得到html
代码
我做错了什么/忘了做什么?
我的控制器:
@RequestMapping(value = "/persons", method = RequestMethod.GET)
@ResponseBody
public String getPersons(Model model) {
logger.info("Received request to show all persons");
// Retrieve all persons by delegating the call to PersonService
List<Person> persons = personService.getAll();
model.addAttribute("persons", persons);
return "personspage";
}
您的spring配置中可能缺少和messageConverter。您的控制器应如下所示:
@RequestMapping(value = "/persons/{id}", method = RequestMethod.GET)
@ResponseBody
public Person getPerson(@PathVariable int id) {
Person person = personService.getPersonById(id);
return person;
}
如果要返回
Person
对象的列表,需要一个额外的包装器对象,请参阅:。向我们展示您的控制器方法。您是否从方法返回Person
对象,并且在控制器方法上也有@ResponseBody
注释?我添加了一个@pathVariable,但得到一个错误,类型为Status report message/Buddies/WEB-INF/jsp/main/persons/1.jsp描述请求的资源(/Buddies/WEB-INF/jsp/main/persons/1.jsp)不可用。@鲍勃:在web.xml
中,哪些路径映射到DispatcherServlet
?还有一个问题:application/xml请求成功,我看到了所有数据,但application/json失败。有什么问题吗?@Bob:如果您发送的是application/json
(?)并且jackson.jar
在类路径上,那么这两种方法都应该透明地工作。
@RequestMapping(value = "/persons/{id}", method = RequestMethod.GET)
@ResponseBody
public Person getPerson(@PathVariable int id) {
Person person = personService.getPersonById(id);
return person;
}