Tôi đã có thể đạt được "loại trừ url" hoặc "không khớp với url" thông qua việc sử dụng cấu trúc "lookahead" của Regex.
Tôi muốn trình xử lý của mình phân phát mọi thứ ngoài tài nguyên tĩnh, tức là CSS/Hình ảnh/JS và các trang lỗi.
Để ngăn chặn điều đó handeling của trang lỗi tức là resourceNotFound bạn sẽ cần phải
- Sửa web.xml/web-app/lỗi-page tiền tố url lỗi với/lỗi/
- Chỉnh sửa WEB-INF/spring/webmvc-config.xml/beans/mvc: chế độ xem-bộ điều khiển/@ path handel ánh xạ mới của bạn
- Chỉnh sửa WEB-INF/spring/webmvc-config.xml/beans/bean [@ class = ** SimpleMappingExceptionResolver] để ánh xạ tất cả ngoại lệ thành lỗi/...
Trong điều khiển của bạn sử dụng bên dưới
@Controller
@RequestMapping(value = { "/" })
public class CmsFrontendController {
@RequestMapping(value = { "/" }, headers = "Accept=text/html")
public String index(Model ui) {
return addMenu(ui, "/");
}
@RequestMapping(value = { "{path:(?!resources|error).*$}", "{path:(?!resources|error).*$}/**" }, headers = "Accept=text/html")
public String index(Model ui, @PathVariable(value = "path")String path) {
try {
path = (String) request.getAttribute(
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
return addMenu(ui, path);
} catch (Exception e) {
log.error("Failed to render the page. {}", StackTraceUtil.getStackTrace(e));
return "error/general";
}
}
}
Cũng xin soi sáng cho tôi về cách mẫu url làm việc với @RequestMapping. Cảm ơn. –