主题 : 静态页生成
级别: 商业授权用户
UID: 45425
积分:51 加为好友
威望: 0 精华: 0
主题:5 回复:20
注册时间:2013-03-26
在线时长:0
1#   发表于:2013-04-27 08:58:45  IP:218.4.*.*
仿照jeecms2012首页静态化    在jeecms09里加了首页静态化  但是生成的时候  对于自定义宏里的循环变量 会报
Expression c is undefined on line 89, column 6 in \WEB-INF\user_base\cnncy_com_www\template\article\default\index.html.
这个异常
宏标签[@cms.ChnlList id='' sysType='article' hasContent='1' inner='1';c]  
 但是单纯的访问首页没有任何的问题 浏览器正常显示 是不是freemarker还要增加些设置啊???
级别: 商业授权用户
UID: 45425
积分:51 加为好友
威望: 0 精华: 0
主题:5 回复:20
注册时间:2013-03-26
在线时长:0
2#   发表于:2013-04-27 09:00:03  IP:218.4.*.*
还有 我发现我在页面里用<#...>标签会被直接输出 用[]则正常了 怎么会这样
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
3#   发表于:2013-04-27 09:08:02  IP:115.171.*.*
仿照jeecms2012首页静态化    在jeecms09里加了首页静态化  但是生成的时候  对于自定义宏里的循环变量 会报
Expression c is undefined on line 89, column 6 in \WEB-INF\user_base\cnncy_com_www\template\article\default\index.html.
这个异常
宏标签[@cms.ChnlList id='' sysType='article' hasContent='1' inner='1';c]  
 但是单纯的访问首页没有任何的问题 浏览器正常显示 是不是freemarker还要增加些设置啊???
 您自己是怎么改的?在哪里加的?
功成由勤,业精于勤。
级别: 商业授权用户
UID: 45425
积分:51 加为好友
威望: 0 精华: 0
主题:5 回复:20
注册时间:2013-03-26
在线时长:0
4#   发表于:2013-04-27 09:11:16  IP:218.4.*.*
回复第3楼
public void index(Website web, String tpl, Map<String, Object> data)
throws IOException, TemplateException
{
// long time = System.currentTimeMillis();
File f = new File(ServletActionContext.getServletContext().getRealPath("/")+File.separator+STATIC_INDEX+STATIC_INDEX_SUFFIX);
System.out.println(ServletActionContext.getServletContext().getRealPath("/")+File.separator+STATIC_INDEX+STATIC_INDEX_SUFFIX);
File parent = f.getParentFile();
if (!parent.exists())
{
parent.mkdirs();
}
Writer out = null;
try
{
// FileWriter不能指定编码,用他的父类OutputStreamWriter包装字节流FileOutputStream进行替代
out = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
// TemplateLoader tl = new FileTemplateLoader(new File(
// ServletActionContext.getServletContext().getRealPath("/")));
// conf.setTemplateLoader(tl);
conf.setDirectoryForTemplateLoading(new File(
ServletActionContext.getServletContext().getRealPath("/")));
conf.setObjectWrapper(new DefaultObjectWrapper());
Template template = conf.getTemplate(tpl, "UTF-8");
template.process(data, out);
} finally
{
if (out != null)
{
out.flush();
out.close();
}
}
// time = System.currentTimeMillis() - time;
}
就指定了输出的静态页文件路径 寻找模板的文件路径 模板的名称 
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
5#   发表于:2013-04-27 09:13:47  IP:115.171.*.*
freemarker不需要什么设置,因该是你的标签用错了
功成由勤,业精于勤。
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
6#   发表于:2013-04-27 09:14:57  IP:115.171.*.*
还有 我发现我在页面里用<#...>标签会被直接输出 用[]则正常了 怎么会这样
[]和这<>其实都是一样的用法!两个也没什么大区别!我们系统模板一般前台用[]后台用<> 
功成由勤,业精于勤。
级别: 商业授权用户
UID: 45425
积分:51 加为好友
威望: 0 精华: 0
主题:5 回复:20
注册时间:2013-03-26
在线时长:0
7#   发表于:2013-04-27 09:16:09  IP:218.4.*.*
回复第5楼
问题是单纯的访问首页没有任何问题啊  生成静态页面的时候就异常了
还有<>和[]有什么区别
级别: 商业授权用户
UID: 45425
积分:51 加为好友
威望: 0 精华: 0
主题:5 回复:20
注册时间:2013-03-26
在线时长:0
8#   发表于:2013-04-27 09:16:26  IP:218.4.*.*
回复第6楼
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
9#   发表于:2013-04-27 09:19:37  IP:115.171.*.*
功成由勤,业精于勤。
1 共1页