我正在开发基于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));
}
}
答案 0 :(得分:0)
我无法理解你在这里想要达到的目的。但我想你试图在控制器级别完成验证后显示错误消息,然后想再次显示相同的表单但是有错误消息。
我也对你的 REDIRECT_PREFIX 变量感到困惑。它的价值是什么? 如果您使用“重定向:”作为其值,则问题就在于此。当您重定向到其他视图时,您附加到模型属性的错误消息将不会显示在窗体中。您只需指定显示表单的视图名称,spring将自动显示与您的模型属性绑定的错误。
希望这会对你有所帮助。欢呼声。