首页 > 解决方案 > MVCAction 覆盖中的 Liferay SessionMessages 和 SessionErrors

问题描述

我正在使用 Liferay DXP SP7。我正在尝试获取 Liferay 的 SessionErrors 和 SessionMessages 以通过覆盖的 Liferay MVCAction 类将成功和错误消息添加到包含自定义 portlet 的页面 - com.liferay.dynamic.data.lists.form.web.internal.portlet.action.AddRecordMVCActionCommand。我使用这里解释的技术来覆盖这个内部类,因为我们需要通过添加一些东西来增强一些 Liferay 表单功能,比如在表单提交后编辑表单的能力。这工作得很好。我遇到的问题是我似乎无法获得 LiferaySessionMessagesSessionErrors工作的功能。我要做的就是向用户显示错误或成功消息,让他们知道表单保存是否有效。我的表单由一个自定义 portlet 显示,该 portlet 通过 ajax 调用 Liferay 的 DDLFormPortlet(实际上调用我的 custom AddRecordMVCActionCommand)来检索表单。在自定义中,我使用orAddRecordMVCActionCommand添加成功或错误消息。我在 src/main/resources/content 中有我的 Language.properties 文件,其中包含以下内容:SessionMessages.add(actionRequest, "formSaveSuccess");SessionErrors.add(actionRequest, "formSaveError");

form-save-success=Report saved successfully.
form-save-error=An unexpected error occurred while trying to save the report, please try again.

我的 JSP 页面具有以下必需的导入和标记:

<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<%@ include file="/init.jsp" %>
<liferay-ui:success key="formSaveSuccess" message="form-save-success" />
<liferay-ui:error key="formSaveError" message="form-save-error" />

我已按照此处Liferay 文档中的说明添加我的语言键,设置 JSP 并将消息添加到我的 MVCAction 类中的会话中。我已多次阅读并重新阅读这些说明,一切似乎都设置正确。我在日志中没有收到任何错误消息,但我的成功和错误消息从未出现。有人可以提供的任何帮助都会非常有帮助。

标签: javaliferayliferay-7

解决方案


推荐阅读