我正在开发一个基于 Spring-MVC 的应用程序,需要向最终用户显示错误消息,以防过程中出现问题。这是我正在做的一段代码
GlobalMessages.addErrorMessage(model, "facebook.user.accessDenied");
return REDIRECT_PREFIX + "http://localhost:8080/storefront";
我在 UI 中使用标签来显示错误消息,但似乎使用重定向只是删除我的错误消息。我是 Spring-MVC 的新手,不确定我做对了还是错了。
我注意到的一件奇怪的事情是,在重定向 URL 时,正在更改
http://localhost:9001/storefront/?errorKey=facebook.user.accessDenied
这是 addErrorMessage 函数的剩余部分
public static void addErrorMessage(final Model model, final String messageKey)
{
addMessage(model, ERROR_MESSAGES_HOLDER, messageKey);
}
protected static void addMessage(final Model model, final String messageHolder, final String messageKey)
{
if (model.containsAttribute(messageHolder))
{
final Map<String, Object> modelMap = model.asMap();
final List<String> messageKeys = new ArrayList<String>((List<String>) modelMap.get(messageHolder));
messageKeys.add(messageKey);
model.addAttribute(messageHolder, messageKeys);
}
else
{
model.addAttribute(messageHolder, Collections.singletonList(messageKey));
}
}