当前位置: 首页 > 知识库问答 >
问题:

Liferay 7.1自由标记模板中的访问页面自定义字段

堵远航
2023-03-14

我在Liferay 7.1中设置了一个名为CustomLogo的页面自定义字段。我想访问它的值在免费标记模板。看完留档

<#assign page_custom_field_logo_url = layout.getGroup().getExpandoBridge().getAttribute("CustomLogo") />
<h1>${page_custom_field_logo_url }</h1> 

我已经为自定义字段设置了视图权限(所有用户角色)。我还检查了列名和值是否正确地设置在增殖数据库(扩展表)中。然而,我得到以下错误:

FreeMarker template error: Java method "com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttribute(String)" threw an exception when invoked on com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl object "com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl@f2864c8"; see cause exception in the Java stack trace. FTL stack trace ("~" means nesting-related):
- Failed at: #assign page_custom_field_logo_url...  [in template "/templates/portal_normal.ftl" at line 75, column 37]

在观察堆栈跟踪时,我看到有一个空指针异常,它声明:

Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttribute(ExpandoBridgeImpl.java:219)
at com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttribute(ExpandoBridgeImpl.java:199)
Caused by: java.lang.NullPointerException
at com.liferay.portlet.expando.service.permission.ExpandoColumnPermissionImpl.contains(ExpandoColumnPermissionImpl.java:73)
at com.liferay.expando.kernel.service.permission.ExpandoColumnPermissionUtil.contains(ExpandoColumnPermissionUtil.java:58)
at com.liferay.portlet.expando.service.impl.ExpandoValueServiceImpl.getData(ExpandoValueServiceImpl.java:121)
at sun.reflect.GeneratedMethodAccessor1066.invoke(Unknown Source)

如上所述,我已经为自定义字段设置了浏览权限。我还仔细检查了钥匙、错别字和可能的错误,但没有成功。

如果你有任何建议或我遗漏的事情,请告诉我。谢谢

共有1个答案

丁书
2023-03-14

试着从布局而不是团队中获取expando桥,所以

layout.getExpandoBridge().getAttribute("CustomLogo")

应该有用。

 类似资料:
  • 问题内容: 我在中的代码: 在“ settings.py”中: 但我得到一个错误: 问题答案: 在该范围内不是变量。你必须首先从上下文中获取它。传递t给装饰器并添加context到tag参数。 像这样:

  • 我试图从一个Liferay模板中发出自定义字段的值。 使用管理员界面,我定义了一个名为“org home page”的新组织级自定义字段,默认值为“tom rules”。 我想在portal_normal中发出这个值。虚拟机 我根据一位同事发送的一些帖子和样本,以及我自己的大量实验,拼凑出了这段代码: 不幸的是,Velocity无法解析表达式,并且保持不变。 以下表达式在portal_normal

  • 因此,我想访问子标记result1、result2、result3中父标记属性test1、test2、test3(这些属性的返回值为true/false)的结果,以根据返回的条件值显示输出,不管它是true还是false。 谢谢,开发者。

  • 我正在为wordpress构建我的第一个插件,我需要它为登录屏幕动态添加一个自定义页面。 我能找到的唯一一件接近我需要的东西是:WP-使用插件目录中的文件作为自定义页面模板? 这是我目前在我的插件中运行的代码... 使用这将需要我的客户端创建新页面。。。我需要的是插件使用插件文件夹中的模板文件自动创建一个自定义页面(具有自定义路径,意思是.com/custompathhere),该模板文件将包含插

  • 您好,我正在尝试将分页添加到一个页面模板中,我正在使用该模板来显示自定义帖子类型。我已经环顾四周几个小时了,但还没有找到一套清晰的说明。 下面是我页面模板php文件中的所有代码。如果有人能给我指出正确的方向,我将不胜感激。 我将感谢任何关于如何添加代码的帮助 我可以通过直接链接推荐书/page/2/访问第2页。但是在第1页上,导航没有出现。 第1页: 第2页:

  • 我最近研究了一个使用Liferay 6.1的Android应用程序。但是,我无法使用Liferay API更新自定义字段的值。 我将自定义字段挂接到users_adminportlet用户/details.jsp,并使公共视图可访问: 还挂接到登录portletcreate_account.jsp: 因此,我需要一个定制的Web服务来通过http客户端访问这些值,以发布/获取值。知道从哪里开始找吗