Hybris 为全局消息设置错误消息样式的正确方法是什么?

Hybris 为全局消息设置错误消息样式的正确方法是什么?,hybris,Hybris,我想为相应的GlobalMessage类的特定错误消息应用一些脚本和样式,并想知道如何在不干扰其他错误消息或此类闪存消息的情况下实现此目的。扩展类de.hybris.platform.AcceleratorsStoreFrontCommons.controllers.util.GlobalMessage如下: class StylableGlobalMessage extends GlobalMessage { private cssClass; setCssClass... get

我想为相应的GlobalMessage类的特定错误消息应用一些脚本和样式,并想知道如何在不干扰其他错误消息或此类闪存消息的情况下实现此目的。

扩展类
de.hybris.platform.AcceleratorsStoreFrontCommons.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);

在访问cssClass属性之前,请记住检查消息的类型。或者用StylableGlobalMessage替换每个GlobalMessage。然后您可以省略检查。

这里有一种检查类型的可能性:实际上不是最佳实践方法。但是由于acceleratorstorefrontcommons扩展对可扩展性的支持非常差,我认为这是最好的方法。您也可以使用“ant customize”用自己的实现替换相应的类。
<div class="alert neutral ${msg.cssClass}">
    <spring:theme code="${msg.code}" arguments="${msg.attributes}"/>
</div>