我想要做的是将请求映射到 servlet 根目录(正确的术语?)。我正处于将 URL 映射到正确视图的位置,但无法找到作为页面一部分的所有静态内容 - css、javascript、图像。
所以在我的 web.xml 我的 servlet 标签看起来像这样
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我的控制器看起来像这样:
@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;
}
}
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);
}
我在视图层中使用 Tiles。我的配置如下:
/WEB-INF/tiles-defs.xml
正如我所提到的,可以找到视图,但找不到作为页面端口的静态资源。以下是一些典型的注销:
2010-01-24 17:25:01,777 调试 [http-8080-7] servlet.DispatcherServlet (DispatcherServlet.java:690) - 名称为“springapp”的 DispatcherServlet 处理 [/springapp/static/css/account.css 的 GET 请求] 2010-01-24 17:25:01,778 WARN [http-8080-4] servlet.DispatcherServlet (DispatcherServlet.java:962) - 找不到带有 URI 的 HTTP 请求的映射 [/springapp/static/css/shop.css]在名为“springapp”的 DispatcherServlet 2010-01-24 17:25:01,778 调试 [http-8080-6] servlet.FrameworkServlet (FrameworkServlet.java:677) - 成功完成请求 2010-01-24 17:25:01,778 警告[http-8080-5] servlet.DispatcherServlet (DispatcherServlet.java:962) - 在 DispatcherServlet 中找不到带有 URI [/springapp/static/css/offers.css] 的 HTTP 请求的映射,名称为 'springapp' 2010-01-24 17:25:01,778 WARN [http-8080-3] servlet.DispatcherServlet (DispatcherServlet.java:962) - 在名为“springapp”的 DispatcherServlet 中找不到具有 URI [/springapp/static/css/scrollable-buttons.css] 的 HTTP 请求的映射
转到 http://localhost:8080/springapp/shop可以正常工作,但缺少 css 和图像。
我认为使用 Tiles 会使事情变得复杂,但我不愿意摆脱它。我想知道我是否需要调整我的视图分辨率配置需要以某种方式调整?链接视图解析器可能吗?我不是那样有这样做的经验。