Hybris:在店面上显示错误消息

Hybris:在店面上显示错误消息,hybris,storefront,Hybris,Storefront,如果产品离线,我想在用户在购物车页面签出时在店面上显示同样的错误消息。我更新了Controller类中的源代码,并将错误消息添加到GlobalMessages中,如下所示: GlobalMessages.addMessage(model, GlobalMessages.ERROR_MESSAGES_HOLDER, "basket.validation.offlineProduct", new Object[] { productData.getName(), productUrl, quanti

如果产品离线,我想在用户在购物车页面签出时在店面上显示同样的错误消息。我更新了Controller类中的源代码,并将错误消息添加到GlobalMessages中,如下所示:

GlobalMessages.addMessage(model, GlobalMessages.ERROR_MESSAGES_HOLDER, "basket.validation.offlineProduct", new Object[] { productData.getName(), productUrl, quantity });
basket.validation.offlineProduct=Unfortunately <a href="{1}">{0}</a> was removed from your cart as it is offline. You previously had {2} in your cart.
<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %>
<common:globalMessages/>
我在属性文件中添加了此错误属性“basket.validation.offlineProduct”,如下所示:

GlobalMessages.addMessage(model, GlobalMessages.ERROR_MESSAGES_HOLDER, "basket.validation.offlineProduct", new Object[] { productData.getName(), productUrl, quantity });
basket.validation.offlineProduct=Unfortunately <a href="{1}">{0}</a> was removed from your cart as it is offline. You previously had {2} in your cart.
<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %>
<common:globalMessages/>
basket.validation.offlineProduct=不幸地从您的购物车中删除,因为它处于脱机状态。您以前的购物车中有{2}。
尽管调试时调用了自定义代码并将错误消息代码设置为Model,但不会显示错误消息

jsp文件中已存在显示错误消息所需的其他设置,如下所示:

GlobalMessages.addMessage(model, GlobalMessages.ERROR_MESSAGES_HOLDER, "basket.validation.offlineProduct", new Object[] { productData.getName(), productUrl, quantity });
basket.validation.offlineProduct=Unfortunately <a href="{1}">{0}</a> was removed from your cart as it is offline. You previously had {2} in your cart.
<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %>
<common:globalMessages/>


我检查了其他控制器文件源代码,过程似乎是相同的,错误消息显示在其他页面上。我还尝试删除缓存并重新启动服务器。

如果我是你,我将尝试执行以下操作:

1) 尝试在没有任何参数的情况下显示消息,例如-
“产品脱机时已从购物车中删除”
。如果工作正常-问题在于属性

2) 尝试使用其他内容,而不是
GlobalMessages
,例如

String error = l10NService.getLocalizedString("basket.validation.offlineProduct",new Object[] { productData.getName(), productUrl, quantity });
model.addAttribute("productError", error);

我强烈建议只在属性文件中使用文本。不要将html存储在那里。@Hristo。。我也尝试使用非html属性。没用。实际上我已经试过这两种方法了。但它仍然没有在屏幕上显示错误消息。尽管如此,默认的hybris错误消息仍会显示在屏幕上。我认为这两种解决方案都应该有效,但它们都不行。可能是我的代码有问题,我无法理解。谢谢我知道了。嗯,我认为如果调试显示属性设置为model,但是在storefront上,Hybris会显示一些其他消息-我认为您应该检查控制器和storefront的模型是否相同(例如,添加一些参数并输出它)。或者您的消息被覆盖。但是在storefront上,它不会显示任何关于我的更改的消息。是的,我检查了模型是否正确。当库存为零(forceOutOfStock)时,我进行了检查,然后完成了默认的hybris检查,错误消息保存在模型中,同样的结果显示在storefront上。