我想用我的 Spring MVC 后端制作一个单页应用程序。我刚刚学习了 Angular.js。
我有一个由两个链接组成的左侧菜单。
一个人向下面的控制器发出请求。该控制器进行 url 转发并列出由给定模型属性填充的某些内容的详细信息。
@RequestMapping(value = "{id}/rev/{rid}/detail", method = RequestMethod.GET)
public String detail(@PathVariable("id") Project project, @PathVariable("rid") Rev rev, Model model, HttpSession session) {
User user = ((User) session.getAttribute(CSession.USER));
model.addAttribute("project", project);
model.addAttribute("rev", rev);
model.addAttribute("cont", revContBS.getRevCont(rev, user));
return "template/detail";
}
另一个对返回 JSON 的控制器进行 ajax 调用。
@RequestMapping(value = "file/{fid}", method = RequestMethod.GET)
public @ResponseBody String getFile(@PathVariable("fid") FV fv) {
return repBS.getVerCon(fv);
}
目前,我有一个装饰:标题、左侧菜单和主要内容区域。如果我点击第一个链接,它会刷新整个页面(因为它会进行页面转发和jsp模板)如果我点击第二个链接,它只会改变主要内容区域。
我想改变第一个链接的行为,因为它应该只改变内容区域。Angular.JS + Spring MVC可以吗?我的意思是,我会从 spring mvc 请求一个页面。它将使用给定的模型属性模板化“template/detail.jsp”。但我会将此页面放入我的 ng-app 的内容区域。
目前,我在以下方面遇到问题:
- @RequestMapping(value = "{id}/rev/{rid}/detail", method = RequestMethod.GET) 是参数化的。我找不到使路由转发参数化的方法。
- 我不知道我应该如何重新提供我的“template/detail.jsp”,以便将其放入名为 ng-view 的 div 中。