使用JSP,获取web上下文的方式是:
${pageContext.request.contextPath}
我通常习惯将这个设置为一个变量:
<c:set var="ctx" value="${pageContext.request.contextPath}" />
然后,JSP页面上直接使用${ctx}
即可。
例如:
<a href="${ctx}/user/delete/${user.id}">删除</a>
那使用FreeMarker怎么获取这个ctx
呢?
方法一
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="freemarkerVariables">
<map>
<!-- 设置web的上下文 -->
<entry key="ctx" value="#{servletContext.contextPath}"/>
</map>
</property>
</bean>
方法二
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="requestContextAttribute" value="rc" />
</bean>
然后在freemarker的页面上,使用${rc.contextPath}
取得web上下文。
但是,${rc.contextPath}
还是太长了。最好用个变量把它保存起来。
如:<#assign ctx="${rc.contextPath}" />