Как правильно оформить сообщение об ошибке для Global Message? - PullRequest
0 голосов
/ 18 января 2019

Я хочу применить некоторый сценарий и стиль для конкретного сообщения об ошибке для соответствующего класса GlobalMessage, и хотел знать, как этого добиться, не мешая другим сообщениям об ошибках или флэш-сообщениям из этого класса.

1 Ответ

0 голосов
/ 18 января 2019

Расширить класс de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessage, как это:

class StylableGlobalMessage extends GlobalMessage {
  private cssClass;
  setCssClass...
  getCssClass...
}

Создайте новый метод, чтобы добавить это сообщение в модель. Аналог к de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages#addMessage

final StylableGlobalMessage message = new StylableGlobalMessage();
message.setCode(messageKey);
message.setAttributes(attributes != null ? Arrays.asList(attributes) : Collections.emptyList());
message.setCssClass(cssClass);

List<GlobalMessage> currentMessages = (List<GlobalMessage>) model.getModelMap().get(messageHolder);
// Check if null etc.
currentMessages.add(message);

Введите новый атрибут в файл /mystorefront/web/webroot/WEB-INF/tags/desktop/common/globalMessages.tag следующим образом:

<div class="alert neutral ${msg.cssClass}">
    <spring:theme code="${msg.code}" arguments="${msg.attributes}"/>
</div>

Не забудьте проверить тип сообщения перед доступом к атрибуту cssClass. Или вы заменяете каждое GlobalMessage на StylableGlobalMessage. Тогда вы можете опустить проверку.

...