此问题可视为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
。这是正确的方法吗?任何建议和方向将不胜感激。
答案 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对象中返回自定义错误消息。