我在IntelliJ中使用spring MVC模板来创建一个Web服务,以便从休息调用中生成JSON。
package com.planit.mvc;
@RestController
@RequestMapping("/rest")
public class BasicRestController {
@RequestMapping(value = "/test/{name}", produces = MediaType.APPLICATION_JSON_VALUE)
public Person test(@PathVariable String name) {
Person p = new Person();
p.setAge(10);
p.setFirstName(name);
p.setLastName(name);
return p;
}
}
servlet调度程序XML如下:
<context:component-scan base-package="com.planit.mvc"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
因此,当我导航到URL时,它会尝试根据URL的{name}
参数解析视图时抛出错误。
实现我正在寻找的东西的正确方法是什么,同时仍然允许自动查看分辨率?
编辑:当我拨打网址时如:
http://localhost:8080/rest/test/variable
所以点击BasicRestController,方法测试由于url的/ test部分,后跟PathVariable“变量”我在tomcat中得到这个错误:
HTTP状态404 - /WEB-INF/views/rest/test/variable.jsp
所以看起来它试图解析视图variable.jsp当然不存在。我只是希望它能够回馈Person对象的JSON表示,而不必将其渲染到视图中。
答案 0 :(得分:3)
我相信你刚刚从servlet上下文配置中遗漏<mvc:annotation-driven/>
。不要忘记添加名称空间声明和schemaLocation
值。