chinahnzhou 2011-03-16 09:12
浏览 264
已采纳

请教springmvc 路径问题

1.原来项目中视图层用的是jsp,所有引用(js,css...)上都会加上${ctx}....这个前缀,那么所有的引用都是绝对路径引用,不会出现路径问题。ctx的定义如下:
[code="java"][/code]2.现在用的是springmvc+freemarker,在freemarker没有找到类似jsp中获取上下文定义路径的方法,然后在spring的控制层中我这样写
[code="java"]protected void setContext(ModelMap model, HttpServletRequest request) {

model.addAttribute("path", request.getContextPath());
}[/code]3.现在问题是我写的每个方法都要调用一次这个setContext方法,我觉得肯定有更好的办法解决,但是我之前没接触过springmvc,在网上也没有搜到好的方法,所以想请问一下大家,你们之前做的项目关于这个路径问题是如何处理的。

  • 写回答

4条回答 默认 最新

  • linvar 2011-03-16 10:27
    关注

    可以使用freemarker的全局变量
    在springmvc配置文件中定义
    class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

    <!-- 全局变量 -->













    不知以上可不可以解决楼主的问题
    ${webRoot}这个变量就可以在ftl中调用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • linvar 2011-03-16 12:19
    关注

    1.对于js,css我觉得没必要加上ctx
    应该可以使用绝对路径,比如"/media/js/hello.js"
    这样就不会关联到上下文

    2.如果确实需要加上ctx,
    能不能使用一个filter过滤所有请求, 这个时候可以得到httpservletrequest,也就是可以得到servletcontext,
    再使用类似于spring context util之类的工具得到freemarker的配置bean
    再得到freemarker的Configuration对象, 再使用这个对象设置全局变量servletContext

    3.我在想有没有必要绕得那么厉害?

    评论
  • linvar 2011-03-16 12:30
    关注

    路径一般我都使用绝对路径,完全OK
    不管是js,css,image等

    如果你的media(静态文件之类)的路径不在当前项目下,
    可以配置一下springmvc

    评论
  • linvar 2011-03-16 12:32
    关注

    如果使用到上下文, 这样每个请求都必须解析一次request.getServletContext()
    个人觉得没多大必要

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 欧姆龙PLC 电机控制 限位
  • ¥30 如何处理shell命令接收到的视频流并实时播放出来
  • ¥15 虚心请教C#的代码优化问题
  • ¥15 有偿求做台风过境全过程模拟仿真
  • ¥50 求!AutomationDesk 如何自动导入Variant数据
  • ¥20 Next.JS 静态导出路由
  • ¥15 我做一个对中文文本情感分析的项目 我用了CNN,和keras框架 报的错误我一直处理不好
  • ¥15 unity使用bakery打光烘焙所遇到的问题。
  • ¥99 二维有限元方法求解,泊松方程
  • ¥35 我需要在PC端 开两个抖店工作台客户端.(语言-java)