我要做的是将请求映射到servlet根目录(正确的术语?).我正处于将URL映射到正确视图的位置,但无法找到作为页面一部分的所有静态内容--css,javascript,images.
所以在我的web.xml中,我的servlet标签看起来像这样
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我的控制器看起来像这样:
@RequestMapping("/shop")
public class TheShopController extends MyBaseController {
public static String VIEW = "Tile.Shop";
@Override
@RequestMapping(method = RequestMethod.GET)
protected ModelAndView processRequest(HttpServletRequest req, HttpServletResponse resp) {
ModelAndView mav = new ModelAndView(VIEW);
return mav;
}
}
Run Code Online (Sandbox Code Playgroud)
MyBaseController非常简单.它看起来像这样:
public abstract class MyBaseController extends AbstractController {
protected Logger log = Logger.getLogger(getClass());
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse resp)
throws Exception {
ModelAndView mav = processRequest(req, resp);
return mav;
}
protected abstract ModelAndView processRequest(HttpServletRequest req, HttpServletResponse resp);
}
Run Code Online (Sandbox Code Playgroud)
我在视图层中使用Tiles.我的配置如下: …
我对DefaultAnnotationHandlerMapping的工作方式感到困惑.
在我的web.xml中我有
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/somePath/someWork</url-pattern>
<url-pattern>/users</url-pattern>
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我有这样的控制器,
@RequestMapping(value="/user/adduser", method={RequestMethod.POST})
public void addAdmin(@ModelAttribute("myData") myData data) {
System.out.println("We reached adduser controller");
}
Run Code Online (Sandbox Code Playgroud)
在我有的jsp文件中
<form:form id="adduser" method="post" action="/user/adduser" commandName="myData">
Run Code Online (Sandbox Code Playgroud)
这不起作用.我得到错误没有为"/ adduser"找到处理程序映射,404为页面"/ user/adduser"
但是如果我提到的话,在.xml文件中
<url-pattern>/user/adduser</url-pattern>
Run Code Online (Sandbox Code Playgroud)
它工作,或者如果我使控制器像,
@RequestMapping(value="/adduser", method={RequestMethod.POST})
Run Code Online (Sandbox Code Playgroud)
也有效.提交页面时,它会到达正确的控制器.
我现在对@ReuqestMapping的工作方式很困惑.当一个请求来自"/ user/adduser"时,它将从哪里开始寻找合适的类和正确的方法?