【发布时间】:2019-01-17 23:20:14
【问题描述】:
我想为相应的 GlobalMessage 类的特定错误消息应用一些脚本和样式,并且想知道如何在不干扰其他错误消息或来自此类的 Flash 消息的情况下实现此目的。
【问题讨论】:
标签: hybris
我想为相应的 GlobalMessage 类的特定错误消息应用一些脚本和样式,并且想知道如何在不干扰其他错误消息或来自此类的 Flash 消息的情况下实现此目的。
【问题讨论】:
标签: hybris
像这样扩展类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 属性之前检查 msg 的类型。或者,您将每个 GlobalMessage 替换为 StyleableGlobalMessage。然后你可以省略检查。
【讨论】: