重定向后Spring MVC返回错误消息

时间:2014-11-05 15:21:25

标签: spring-mvc http-redirect

我有一个带有2个输入框的jsp,可以搜索2种不同的场景。所以,我有两个不同的Get请求映射到/ search1和/ search2,但为此只创建了一个POJO。 一旦用户提交搜索,我检查是否有任何结果,如果不是我在模型中添加错误消息和“重定向:”(重定向,因为如果我只是返回一个页面,现在进行新的搜索,网址将be / search1 / search2)到同一个基本页面。

但是每次加载页面时都会出现错误信息。 有什么解决方法吗?我如何只在搜索时显示messaeg。

2 个答案:

答案 0 :(得分:1)

使用Flash属性。

http://viralpatel.net/blogs/spring-mvc-flash-attribute-example/

RedirectAttributes参数添加到控制器的处理程序方法中。

然后redirectAttributes.addFlashAttribute("modelAttributeName", "value");

然后重定向

您重定向到的控制器处理程序应具有"modelAttributeName"模型属性。

基本上是你把一个值放入会话中,一旦在下一个请求中读取它就会被删除。

答案 1 :(得分:0)

另一种解决方案是 您可以使用请求参数传递消息ID和写入实用程序,以使用重定向控制器的get请求中的消息ID从属性文件中读取消息。

控制器1

return "redirect:your_redirection_url?messageId=1";

控制器2(重定向)

if (messageid != null && !(messageid.equals(""))) { MessageUtility.addMessage(Integer.parseInt(messageid), model, locale); }