0

我已经开发了一个 Spring MVC-Hibernate 应用程序,如此所述。

现在我正在尝试修改此代码以创建一个 REST 应用程序,如此所述。

我已将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";
    }

更改了控制器,但出现错误:t

ype Status report

message /Buddies/WEB-INF/jsp/main/persons/1.jsp

description The requested resource (/Buddies/WEB-INF/jsp/main/persons/1.jsp) is not available.
4

2 回答 2

2

您的控制器应如下所示:

@RequestMapping(value = "/persons/{id}", method = RequestMethod.GET)
@ResponseBody
public Person getPerson(@PathVariable int id) {
    Person person = personService.getPersonById(id);
    return person;
}

如果要返回Person对象列表,则需要一个额外的包装器对象,请参阅:Using JAXB to unmarshal/marshal a List<String>

于 2012-08-27T19:34:27.480 回答
0

您可能在 spring 配置中缺少AnnotationMethodHandlerAdapter和 messageConverter。

于 2012-08-27T19:25:31.873 回答