1

我想使用 Spring MVC 3.0 为 AJAX 事务构建接口。我希望结果以 JSON 形式返回,但我不一定希望使用 JSP 构建网页。我只希望通过 DispatcherServlet 拦截/路由对控制器的请求,并且项目的其余部分继续像没有 Spring 集成的常规 Java webapp 一样运行。

我的想法是将 web.xml 中的 servlet-mapping url 模式定义为类似于“/controller/*”,然后在我的控制器中将类级别 @RequestMapping 设置为类似于 @RequestMapping("/controller/colors") ,最后在方法级别,有 @RequestMapping(value = "/controller/colors/{name}", method = RequestMethod.GET)。

唯一的问题是,我不确定是否需要在所有 RequestMappings 中继续添加“/controller”,无论我尝试什么组合,我都会不断收到 404 requested resource not available 错误。

这里的最终目标是让我能够在 Web 浏览器中输入“http://localhost:8080/myproject/controller/colors/red”并将 RGB 值作为 JSON 字符串取回。

4

2 回答 2

2

您需要在任何地方添加整个路径是不正确的,路径是累积的-

如果您有/controller/*Spring 的 DispatcherServlet 的 servlet 映射,那么任何调用/controller/*都将由 DispatcherServlet 现在处理,您只需要处理 中的其余路径信息@RequestMapping,因此您的控制器可以

@Controller
@RequestMapping("/colors")
public class MyController{

 @RequestMapping("/{name} 
 public String myMappedMethod(@PathVariable("name") String name, ..){
 }

}

所以现在,这个方法将由对/controller/colors/blueetc的调用来处理。

于 2012-10-18T15:23:15.547 回答
1

我不一定要使用 JSP 构建网页

Spring MVC 提供了许多视图模板集成选项,从直通到原始 html 到 Velocity 和 Freemarker 等丰富的模板引擎。也许这些选项之一将适合您正在寻找的东西。

于 2012-10-18T15:15:46.617 回答