Freemarcker获取项目根目录


现在知道了Freemarker模板技术,发现在用Freemarker之后引入到文件中的CSS和JS文件都没有起作用,在JSP页面中还可以用<base href="<%=basePath%>">来设置绝对路径,请问怎么样在ftl文件中设置<base>标签的值?还有,生成静态页面之后怎么样显示用户登陆了的信息?

全部采用绝对定位即可,比如我的使用,在一个全局macro定义中定义变量basePath即可

<#-- 取得 应用的绝对根路径 -->
<#assign basePath="http://localhost:8088/freemarker">
<#macro head>
		<title>预祝成功</title>
		<link rel="shortcut icon" href="${basePath}/favicon.ico">
		<link rel="icon" type="image/gif" href="${basePath}/animated_favicon.gif">
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
</#macro>

如果是在<body>中还需要这个绝对路径那应该怎么办呢?我现在的想法是,在省城HTML的Action中直接用HttpServletRequest获取到绝对路径path,放到root中,然后在ftl页面中使用<base href="path">

首先定义公共宏文件app.ftl(注意:使用request.contextPath)要增加spring视图配置,本人用的是spring框架,使用其他框架应该也需要加入支持的配置:<propertyname="requestContextAttribute"value="request"/>

<#-- 取得 应用的绝对根路径 -->
<#assign basePath=request.contextPath>  
<#macro head>
<title>预祝成功</title>
<link rel="shortcut icon" href="${basePath}/favicon.ico">
<link rel="icon" type="image/gif" href="${basePath}/animated_favicon.gif">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</#macro>

所以在其他ftl文件中可以使用他了,比如在home.ftl中: 
<#import "/common/app.ftl" as app> 
<base href="${app.basePath}/">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值