xuhuisheng / lemon

开源OA
Apache License 2.0
1.62k stars 1.57k forks source link

企业门户功能不能查看里面的新闻和公告 #206

Closed honbaa closed 4 years ago

honbaa commented 4 years ago

点击某一个新闻或者公告,后台出现异常: freemarker.runtime:60 - Error executing FreeMarker template freemarker.core.InvalidReferenceException: The following has evaluated to null or missing: ==> cms.article [in template "\u003C!doctype html>\r\n\u003Chtml>\r\n \u003Chead>\r\n \u003Cmeta charset=\"utf-8\" />\r\n \u003Cmeta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\r\n \u003Ctitle>${cms.article.title}\u003C/title>\r\n \u003C!-- static start -->\r\n \u003Clink rel=\"stylesheet\" href=\"${cms.ctx}/cdn/public/bootstrap/3.3.7/css/bootstrap.min.css\">\r\n \u003Cscript type=\"text/javascript\" src=\"${cms.ctx}/cdn/public/jquery/1.12.4/jquery.min.js\">\u003C/script>\r\n \u003Cscript type=\"text/javascript\" src=\"${cms.ctx}/cdn/public/bootstrap/3.3.7/js/bootstrap.min.js\">\u003C/script>\r\n \u003C!-- static end -->\r\n \u003Cstyle type=\"text/css\">\r\n* {\r\n font-size: 16px;\r\n}\r\n \u003C/style>\r\n \u003Cscript type=\"text/javascript\">\r\nfunction doReply(el) {\r\n var parentNode = $(el).parent();\r\n var commentId = parentNode.children('input[type=hidden]').val();\r\n var content = parentNode.children('textarea').val();\r\n \r\n $.post('cms-comment-reply.do', {\r\n articleId: '${cms.article.id?c}',\r\n commentId: commentId,\r\n content: content\r\n }, function() {\r\n location.reload();\r\n });\r\n}\r\n \u003C/script>\r\n \u003C/head>\r\n \u003Cbody>\r\n \u003Cdiv class=\"container\" style=\"font-size:12px;\">\r\n \u003Cdiv class=\"row\">\r\n \u003Cdiv class=\"col-md-6\">\r\n  \r\n \u003C/div>\r\n \u003Cdiv class=\"col-md-6 text-right\">\r\n \u003Ca href='${cms.ctx}/portal/index.do' style=\"font-size:12px;\">个人中心\u003C/a>\r\n \u003C/div>\r\n \u003C/div>\r\n \u003C/div>\r\n\r\n \u003Cdiv class=\"container\" style=\"line-height:7rem;margin-bottom:10px;\">\r\n \u003Cdiv class=\"row\">\r\n \u003Cdiv class=\"col-md-2\" style=\"font-size:3rem;\">\r\n Mossle\r\n \u003C/div>\r\n \u003Cdiv class=\"col-md-10\">\r\n \u003Cdiv class=\"text-center\" style=\"background-color:#F8F8F8;color:white;\">\r\n  \r\n \u003C/div>\r\n \u003C/div>\r\n \u003C/div>\r\n \u003C/div>\r\n\r\n \u003C!-- navbar start -->\r\n \u003Cdiv class=\"container\">\r\n \u003Cdiv class=\"navbar navbar-default\" role=\"navigation\" style=\"margin-bottom:10px;\">\r\n \u003Cdiv class=\"navbar-header\">\r\n \u003Ca class=\"navbar-brand\" href=\"${cms.ctx}/cms/view\">首页\u003C/a>\r\n \u003C/div>\r\n \u003Cdiv class=\"collapse navbar-collapse\" id=\"bs-example-navbar-collapse-1\">\r\n \u003Cul class=\"nav navbar-nav\">\r\n \u003C#list cms.catalogs() as theCatalog>\r\n \u003Cli class=\"\">\u003Ca href=\"${cms.ctx}/cms/view/${theCatalog.code}\">${theCatalog.name}\u003C/a>\u003C/li>\r\n \u003C/#list>\r\n \u003C/ul>\r\n \u003C/div>\r\n \u003C/div>\r\n \u003C/div>\r\n \u003C!-- navbar end -->\r\n\r\n\r\n \u003Cdiv class=\"container\">\r\n \u003Cdiv class=\"row\">\r\n\r\n\r\n \u003C!-- left start -->\r\n \u003Cdiv class=\"col-md-9\">\r\n\r\n\r\n \u003Cdiv class=\"panel panel-default\">\r\n \u003Cdiv class=\"panel-body\">\r\n \u003Cspan style=\"color:gray;\">\r\n 首页\r\n /\r\n \u003Ca href=\"${cms.ctx}/cms/view/${cms.catalog.code}\">${cms.catalog.name}\u003C/a>\r\n \u003C/span>\r\n\r\n \u003Ch3 style=\"margin-top:10px;\">${cms.article.title}\u003C/h3>\r\n \u003Cp>\r\n \u003Cspan style=\"color:gray;\">${cms.displayName(cms.article.userId)}\u003C/span>\r\n |\r\n \u003Cspan style=\"color:gray;\">\u003C#if cms.article.publishTime??>${cms.article.publishTime?string(\"yyyy-MM-dd HH:mm\")}\u003C/#if>\u003C/span>\r\n \u003Cspan style=\"color:gray;\">\u003Ci class=\"glyphicon glyphicon-eye-open\">\u003C/i> ${cms.article.hitCount!}\u003C/span>\r\n\r\n \u003Cspan style=\"color:gray;\">tags\u003C/span>\r\n \u003Cspan style=\"color:gray;\">tags\u003C/span>\r\n \u003C/p>\r\n\r\n \u003C#if cms.article.logo??>\r\n \u003Cimg src=\"${cms.article.logo}\">\r\n \u003C/#if>\r\n\r\n \u003C#--\r\n \u003C#if cms.article.summary??>\r\n \u003Cp style=\"color:gray;\">${cms.article.summary!}\u003C/p>\r\n \u003C/#if>\r\n --#>\r\n \r\n \u003Chr>\r\n \u003C!-- ==================================================================== -->\r\n ${cms.article.content!}\r\n\r\n \u003C!-- ==================================================================== -->\r\n\r\n \u003C#if cms.article.cmsAttachments??>\r\n \u003C#list cms.article.cmsAttachments as item>\r\n \u003Cp>\u003Ca href=\"${cms.ctx}/rs/cms/attachments?key=${item.path}\">${item.name}\u003C/a>\u003C/p>\r\n \u003C/#list>\r\n \u003C/#if>\r\n \r\n \u003C/div>\r\n \u003C/div>\r\n\r\n \u003Cdiv id=\"COMMENT\">\u003C/div>\r\n \u003Cscript src=\"${cms.ctx}/cdn/public/mossle-comment/0.0.1/comment.js\">\u003C/script>\r\n \u003Cscript type=\"text/javascript\">\r\n comment.api.init();\r\n \u003C/script>\r\n \u003C/div>\r\n \u003C!-- left end -->\r\n\r\n \u003C!-- right start -->\r\n \u003Cdiv class=\"col-md-3\">\r\n\r\n \u003Cdiv class=\"panel panel-default\">\r\n \u003Cdiv class=\"panel-body\">\r\n \u003Cdiv style=\"font-size:18px;margin-bottom:5px;\">热 门标签\u003C/div>\r\n \u003Cp style=\"color:gray;\">tags, tags\u003C/p>\r\n \u003C/div>\r\n \u003C/div>\r\n \u003C/div>\r\n \u003C!-- right end -->\r\n\r\n \u003C/div>\r\n \u003C/div>\r\n\r\n \u003Chr>\r\n\r\n \u003Cdiv class=\"container\">\r\n \u003Cdiv class=\"row\" style=\"text-align:center;\">\r\n © Mossle\r\n \u003C/div>\r\n \u003C/div>\r\n\r\n \u003C/body>\r\n\u003C/html>\r\n" at line 6, column 14]


Tip: It's the step after the last dot that caused this error, not those before it.

Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??


FTL stack trace ("~" means nesting-related):

xuhuisheng commented 4 years ago

${cms.article.title}说是没有找到article的title,可能是title为null了,可以把模板改成${cms.article.title!}末尾加个叹号

honbaa commented 4 years ago

${cms.article.title}说是没有找到article的title,可能是title为null了,可以把模板改成${cms.article.title!}末尾加个叹号

你好,感谢回复!修改src\main\resources\data\cms-template\default\index.html等3个html模板,重新编译,重新部署到tomcat,发现没有效果,修改后的html模板确实在tomcat部署文件夹中,CmsTemplateDeployer这个类也确实读取到更改后的内容,但是再往后调试发现内容又变回去了!请教一下我在哪里修改,怎么修改模板能生效呢?

xuhuisheng commented 4 years ago

最新的1.11.0版本,支持在后台cms的内容模板管理里修改模板内容。

honbaa commented 4 years ago

将模板内的aritcle和catalog改为currentAritile和currentCatalog。然后将数据库里模板相关的2个表清空。再重新部署一下。就好了。