I have a controller with request mapping as @RequestMapping("/**")
What does it mean?
If I want to exclude certain url pattern from the above mapping how would I do that?
Could someone please shed some light on it?
I was able to achieve "url exclusion" or "not matching url" through the use of the Regex "negative lookahead" construct.
I want my handler to handel everything other than static resources, i.e. CSS/Images/JS, and error pages.
To prevent that handeling of error pages i.e. resourceNotFound you will need to
In your controller use the below
@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";
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With