spring3 mvc如何配置jsp页面中使用的全局变量

例如我在很多jsp页面都会引用到css,对于css的路径因为在开发时和发布时是不一样的,所以我想把它们的路径配置成变量,在一处统一管理,就像下面这样:
在某处定义一个类似properties的文件,文件内容如:
csspath = myapp/css/
然后在jsp页面中就可以直接这样使用:

请问如何可以达到这样的效果,求具体方法

你可以讲这个参数配置在property文件里,然后利用spring启动的时候加载property文件,然后再你的一个登录页面的controller中或是一个公共controller中利用@Value注入,之后store到session中前台就可以直接利用jstl获取了。

ServerContext.setAttribute("csspath","myapp/css/");

diaozhanming 说的很明显了,但如果csspath = myapp/css/ 这个只有一个的话,就直接写在web.xml里面也可以的。

看看你的应用构建脚本吧。maven、ant你都可以设定开发、测试、生产等不同的构建方式。比如你测试的css可以放到/test/css里面,发布的可以用/release/css里面。
你需要测试的时候就把/test/css拷贝到war里面,发布的时候就把/release/css拷贝到war里面。而在war里面都可以只叫css。这样就不用担心搞不清楚了。

用spring MVC的ThemeResolver应该是可以实现的,不过我没尝试用

我的思路是:
(1)写到配置文件里。
basePath=/blog/
(2)spring注入到一个自己的属性类中。
<!--spring的配置文件-->


classpath:conf.properties


<!--spring的配置文件-->




(3)创建一个拦截器,在拦截器中,将这个参数放入session。
<!--spring的配置文件-->
mvc:interceptors

<!-- 每个页面都要走的一个拦截器 -->
mvc:interceptor



/mvc:interceptor
/mvc:interceptors

/*BaseInterceptor类中部分代码*/
@Resource
private MyConfig myConfig;

@Override
public boolean preHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler) throws Exception {
    HttpSession session = request.getSession();
    session.setAttribute("basePath", myConfig.getBasePath()); // 每个页面,都设置一下基础路径
    return true;
}

(4)就可以在jstl中自由使用了。