第一次使用jeecms系统,不知道其综版本有没有问题,但这个问题我弄了好几天了,
几乎把所有的源代码看了一遍,也没有找到解决的法。
最后,我在程序里加了一个vo把hibernate*对对象先加载到vo,然后再展现到模版才解决了问题。。
但这不是最好的解决方法。
程序测试时在后台打印的栏目id,name都没有问题;
输出到模版文件就报当前栏目的id为空,但是栏目的名称可以显示出来。
初步估计是freemaker在延时加载hibernate相关信息时报错。
Hibernate: select channel0_.channel_id as channel1_6_, channel0_.channel_path as channel2_6_, channel0_.lft as lft6_, channel0_.rgt as rgt6_, channel0_.priority as priority6_, channel0_.has_content as has6_6_, channel0_.is_display as is7_6_, channel0_.site_id as site8_6_, channel0_.model_id as model9_6_, channel0_.parent_id as parent10_6_ from jc_channel channel0_ where channel0_.site_id=? and (channel0_.parent_id is null) and channel0_.has_content=1 order by channel0_.priority asc, channel0_.channel_id asc
12:32:33.578 ERROR freemarker.runtime - Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html.
freemarker.core.InvalidReferenceException: Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) ~[freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Expression.getStringValue(Expression.java:118) ~[freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Expression.getStringValue(Expression.java:93) ~[freemarker-2.3.16.jar:2.3.16]
at freemarker.core.DollarVariable.accept(DollarVariable.java:76) ~[freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Environment.visit(Environment.java:417) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16]
at freemarker.core.Environment.process(Environment.java:190) [freemarker-2.3.16.jar:2.3.16]
at freemarker.template.Template.process(Template.java:237) [freemarker-2.3.16.jar:2.3.16]
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at com.jeecms.common.web.springmvc.RichFreeMarkerView.processTemplate(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na]
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at com.jeecms.common.web.springmvc.RichFreeMarkerView.doRender(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na]
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at com.jeecms.common.web.springmvc.RichFreeMarkerView.renderMergedTemplateModel(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na]
at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at com.jeecms.common.web.springmvc.RichFreeMarkerView.render(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) [servlet-api.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) [servlet-api.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) [spring.orm-3.0.5.jar:3.0.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) [spring.web-3.0.5.jar:3.0.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [spring.web-3.0.5.jar:3.0.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) [spring.web-3.0.5.jar:3.0.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:38) [ProcessTimeFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:na]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) [catalina.jar:na]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) [catalina.jar:na]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:na]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:na]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) [catalina.jar:na]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) [tomcat-coyote.jar:na]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) [tomcat-coyote.jar:na]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) [tomcat-coyote.jar:na]
at java.lang.Thread.run(Thread.java:619) [na:1.6.0]
2011-8-24 12:32:33 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet JeeCmsAdmin threw exception
Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html.
The problematic instruction:
----------
==> ${c.id} [on line 11, column 24 in jeecms_sys/content/edit.html]
----------
Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freemarker.core.Expression.getStringValue(Expression.java:118)
at freemarker.core.Expression.getStringValue(Expression.java:93)
at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179)
at freemarker.core.Environment.visit(Environment.java:417)
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.Environment.process(Environment.java:190)
at freemarker.template.Template.process(Template.java:237)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366)
at com.jeecms.common.web.springmvc.RichFreeMarkerView.processTemplate(RichFreeMarkerView.java:50001)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283)
at com.jeecms.common.web.springmvc.RichFreeMarkerView.doRender(RichFreeMarkerView.java:50001)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233)
at com.jeecms.common.web.springmvc.RichFreeMarkerView.renderMergedTemplateModel(RichFreeMarkerView.java:50001)
at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
at com.jeecms.common.web.springmvc.RichFreeMarkerView.render(RichFreeMarkerView.java:50001)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619) |
|