我必须在网页内容中获取ThemeDisplay()来比较页面标题。我正在使用<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
要获得服务上下文,但它会抛出下面提到的freemarker异常:
No error description was specified for this error; low-level message: java.lang.ClassNotFoundException: com.liferay.portal.kernel.service.ServiceContext cannot be found by com.liferay.portal.template.freemarker_2.0.29 ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign service = staticUtil["com.lif... [in template "20155#20195#54243" at line 21, column 1] ----
仅供参考:我已在控制面板freemarker引擎中启用了freemarker引擎设置。也在portal-ext.properties文件中。
答案 0 :(得分:3)
我刚刚在我的freemarker模板中尝试了以下内容:
<#assign
serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
它起Liferay 7 GA5的作用。您确定已正确启用Freemarker变量吗?验证:
freemarker
并按Enter staticUtil
更改为类似nonExistent
的内容(只需将其移回给我)。portal-ext.properties
文件中删除该设置。没有必要。现在怎么样?
答案 1 :(得分:1)
感谢各位宝贵的回复,我发现它不适合我,因为我使用的是嵌入式网页内容。在那种情况下,它不起作用:)。
对不起,我的问题解释不多。实际上我并不知道在主题中嵌入网页内容是一个不同的案例。