2016-11-08 64 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