开发者社区> 问答> 正文

SpringMVC中未配置RequestMapping的情况下如何直接访问资源

有时候想直接访问一个静态页面,如account.html, 验证样式,但必须要在Controller中添加一个方法,如下所示:

@RequestMapping(value = "/account", method = RequestMethod.GET)
  public ModelAndView viewAccount() {
    return new ModelAndView("account");
  }
无可否认非常麻烦,并且还需要重启web服务器。

尝试在interceptor中处理此逻辑,即如果url中包含static参数且值为true,直接访问url中提供的path,如下所示:

if ("true".equals(request.getParameter("static"))) { // 静态页面
      String path = request.getParameter("path");
      request.getRequestDispatcher(path).include(request, response);
      return false;
}
但是不行,报404错误,且有如下的Warn日志输出

WARN  org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/test.html] in DispatcherServlet with name
该如何跳过DispatcherServlet呢? 或者可以在Interceptor中动态添加一个RequestMapping?

展开
收起
a123456678 2016-03-18 14:18:26 3703 0
1 条回答
写回答
取消 提交回答
  • @RequestMapping(value = "/static/{html}")
    ...
     return "/static"+html;
    springmvc的路由支持占位符啊,这样通配下就好啊
    
    很方便啊
    
    谢谢! 其实我想知道如何得到HandleMapping,并能动态往里添加RequestMapping。
    
    现在是按照你的建议来做的,写了一个专门的Controller, 方法如下:
    
    @RequestMapping(value = {"{path1:\\w+}/{path2:\\w+}"}, method = RequestMethod.GET)
    public ModelAndView index(@PathVariable("path1") String path1, @PathVariable("path2") String path2) {
        ModelAndView mv = new ModelAndView(path1 + "/" + path2);
        return mv;
      }
    2019-07-17 19:06:35
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载