Liferay 清理会话,从而清理我在 Liferay 6.1 的 EXT 插件中添加到 SessionErrors.add 中的消息

Liferay cleans the session thus cleans the message that i add into SessionErrors.add in an EXT plugin in Liferay 6.1

这个问题可以看作是How to show error message in liferay portal?

的延伸

在 liferay 6.1 中使用 EXT 插件并自定义 UpdateLookAndFeelAction,我将一条错误消息放入 SessionMessages.add(request,"custom-error-msg"); 但似乎 portlet 生命周期清理了 PortalRequestProcessor.java 中的会话(第 186 行)因此删除会话消息也是如此。一个正常的 Your settings were saved successfull is rendered 我怎样才能停止我的自定义 UpdateLookAndFeelAction 中的进一步执行并在 /html/portlet/portlet_css/view.jsp

上呈现此错误消息

我在view.jsp

中添加了<liferay-ui:error key="custom-error-msg" message="custom.error.msg" />

我想我在某处读到您必须创建一个挂钩并自定义 end.jsp。这是正确的做法吗?任何建议和指导将不胜感激。

我必须重写 look_and_feel.js 如下:

var saveHandler = function(event, id, obj) {
                    var ajaxResponseMsg = instance._portletMsgResponse;
                    var ajaxResponseHTML = '<div id="lfr-portlet-css-response"></div>';
                    var message = '';
                    var messageClass = '';
                    var type = 'success';
                    ***var customErrorMessage = obj.response;***

                    ***if (obj.statusText.toLowerCase() == 'ok' && obj.response != '') {
                        type = 'customError';
                    }***
                    if (obj.statusText.toLowerCase() != 'ok') {
                        type = 'error';
                    }
                    if (type == 'success') {
                        message = Liferay.Language.get('your-request-processed-successfully');
                        messageClass = 'portlet-msg-success';
                    }
                    ***else if(type == 'customError') {
                        message = customErrorMessage;
                        /*message = Liferay.Language.get('custom.error.msg');*/
                        messageClass = 'portlet-msg-error';
                    }***
                    else {
                        message = Liferay.Language.get('your-settings-could-not-be-saved');
                        messageClass = 'portlet-msg-error';
                    } 

在 UpdateLookAndFeel 中,我必须 return json 对象中的自定义错误消息。