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

时间:2015-06-19 00:57:28

标签: extjs liferay-6

此问题可视为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

上呈现此错误消息

我在<liferay-ui:error key="custom-error-msg" message="custom.error.msg" />

中添加了view.jsp

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

1 个答案:

答案 0 :(得分:1)

我必须覆盖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中,我不得不在json对象中返回自定义错误消息。