Java 使用重定向Spring MVC时丢失错误消息
我正在开发一个基于SpringMVC的应用程序,需要在最后显示错误消息 如果在这个过程中出现了问题,请用户使用。下面是我正在执行的代码Java 使用重定向Spring MVC时丢失错误消息,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在开发一个基于SpringMVC的应用程序,需要在最后显示错误消息 如果在这个过程中出现了问题,请用户使用。下面是我正在执行的代码 GlobalMessages.addErrorMessage(model, "facebook.user.accessDenied"); return REDIRECT_PREFIX + "http://localhost:8080/storefront"; 我在UI中使用标记来显示错误消息,但似乎使用重定向只是删除我的错误消息。 我是SpringMVC的新手
GlobalMessages.addErrorMessage(model, "facebook.user.accessDenied");
return REDIRECT_PREFIX + "http://localhost:8080/storefront";
我在UI中使用标记来显示错误消息,但似乎使用重定向只是删除我的错误消息。
我是SpringMVC的新手,不确定我做得对还是错
我注意到的一件奇怪的事情是,当重定向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));
}
}
publicstaticvoidadderrormessage(最终模型,最终字符串messageKey)
{
addMessage(型号、错误消息\u持有者、消息密钥);
}
受保护的静态void addMessage(最终模型、最终字符串messageHolder、最终字符串messageKey)
{
if(型号containsAttribute(消息持有者))
{
最终映射modelMap=model.asMap();
最终列表messageKeys=newarraylist((List)modelMap.get(messageHolder));
messageKey.add(messageKey);
model.addAttribute(messageHolder、messageKeys);
}
其他的
{
model.addAttribute(messageHolder,Collections.singletonList(messageKey));
}
}
我无法理解您在这里到底想要实现什么。但我猜您正在尝试在控制器级别完成验证后显示错误消息,然后希望再次显示相同的表单,但带有错误消息
我还对您的重定向前缀变量感到困惑。它的价值是什么??
如果您使用“重定向:”作为其值,那么这就是问题所在。重定向到其他视图时,将不会在表单中显示附加到模型属性的错误消息。您只需指定显示表单的视图名称,spring就会自动显示与模型属性绑定在一起的错误
希望这对你有帮助。干杯。是的,您是正确的
重定向\u PREFIX=REDIRECT
。我对失去价值也有同样的猜测。在使用redirect
No时,有没有办法保留这一点?您不应该使用redirect,因为它不会保留您的模型和BindingResult对象。当您重定向时,它将调用控制器以作为您的url进行映射请求映射。我的问题是,我必须将用户发回他/她来自的同一位置,并且根据底层框架结构,无法使用简单视图:(然后您需要找到其他解决方法。:-)这正是我试图找到的,但迄今为止没有取得任何成功:(