我想为相应的GlobalMessage类的特定错误消息应用一些脚本和样式,并想知道实现此方法的方法,而又不会打扰此类中的其他错误消息或Flash消息。
答案 0 :(得分:1)
像这样扩展类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替换为StylableGlobalMessage。然后您可以省略支票。