2016-11-08 140 views
1

如果产品处于脱机状态,我希望在用户在购物车页面签出时在店面上显示相同的错误消息。我更新在控制器类的源代码,并添加了错误消息GlobalMessages如下:Hybris:在店面显示错误消息

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. 

GlobalMessages.addMessage(model, GlobalMessages.ERROR_MESSAGES_HOLDER, "basket.validation.offlineProduct", new Object[] { productData.getName(), productUrl, quantity }); 

我在如下属性文件加到此错误属性“basket.validation.offlineProduct”但是错误信息没有被显示出来,虽然在调试我的自定义代码时被调用并且错误信息代码被设置为Model。

显示错误消息所需要的其他设置是已经存在于如下面的jsp文件:

<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> 
<common:globalMessages/> 

我检查其他控制器文件的源代码,并且该过程似乎是被越来越显示在同一和错误消息其他页面。我也尝试删除缓存并重新启动服务器。

+0

我会强烈建议使用纯文本的属性文件。不要在那里存储html。 –

+0

@Hristo ..我尝试使用非html属性。它没有工作。 –

回答

1

如果我是你,我会尝试做接下来的事情就:

1)尽量展现消息不带任何参数,例如 - "Product was removed from your cart as it is offline"。如果它正在工作 - 问题出在属性上。

2)尝试用别的东西,而不是GlobalMessages,像

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

我其实已经尝试了这两种解决方案。但它仍然不会在屏幕上显示错误消息。尽管屏幕上显示默认的hybris错误消息。我认为这两个解决方案都应该可行,但事实并非如此。可能是我的代码中有些问题是我无法理解的。谢谢! –

+0

我懂了。那么,我认为如果调试显示该属性设置为模型,但在店面Hybris显示一些其他消息 - 我认为你应该检查模型是否与你的控制器和店面相同(例如添加一些参数并输出它,例如)。 – Johnlang

+0

或者您的邮件可能被覆盖 – Johnlang