【发布时间】:2016-02-13 14:50:53
【问题描述】:
我是 Spring 新手。我试图通过做而不是阅读来学习它。所以我发现了一些令人困惑的东西。但它有效。我想知道为什么以及如何?
@Controller
@RequestMapping("/ok")
public class MyController {
@RequestMapping(value = "/ok", method = RequestMethod.GET)
public ModelAndView findAllAccounts() throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("account");
mav.addObject("someText", "Listing all accounts!");
return mav;
}
@RequestMapping(value="/ok/{accountId}", method = RequestMethod.GET)
public ModelAndView findAccount(@PathVariable int accountId, Model model) {
ModelAndView mav = new ModelAndView();
mav.setViewName("account");
mav.addObject("someText", String.format("Showing account %d", accountId));
return mav;
}
}
对于上面的代码,我发现了。
working 获取请求 url:http://localhost:8080/ok/
working 获取请求 url:http://localhost:8080/ok/ok/888
但我期待 url : http://localhost:8080/ok/ok/ 也应该工作。但它不起作用。为什么?如果http://localhost:8080/ok/ok/888 有效,为什么http://localhost:8080/ok/ok/ 无效?
当我在 tomcat 中部署它时。它仅在命名为 ROOT.war 时才有效。如果我更改为 XYZ.war,它就不起作用。为什么?
【问题讨论】:
-
定义“它不起作用”。
-
它应该可以工作。对localhost:8080/ok/ok 的请求将映射到
findAllAccounts()。您遇到了什么问题? -
“我正在尝试通过实践而不是阅读来学习它。” - 只是出于好奇,为什么...?
标签: java spring spring-mvc tomcat mapping