Spring mvc Spring MVC在重定向后保留错误

Spring mvc Spring MVC在重定向后保留错误,spring-mvc,http-redirect,Spring Mvc,Http Redirect,我有一个带有两个输入框的jsp,可以搜索两种不同的场景。因此,我有两个不同的Get请求映射到/search1和/search2,但只为此创建了一个POJO。 一旦用户提交搜索,我会检查是否有任何搜索结果,如果没有,我会在model和“redirect:”(重定向,因为如果我只是返回一个页面,现在进行新的搜索,url将是/search1/search2)中添加错误消息到相同的基本页面 但每次我加载页面时,错误消息都会持续出现。 有解决办法吗?如何仅在搜索时显示消息。使用Flash属性 将Redi

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

但每次我加载页面时,错误消息都会持续出现。 有解决办法吗?如何仅在搜索时显示消息。

使用Flash属性

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

然后
redirectAttributes.addFlashAttribute(“modelAttributeName”、“value”)

然后重定向

重定向到的控制器处理程序应具有可用的
模型属性

本质上,您的解决方案是将一个值放入会话,该值在下一个请求读取时立即被删除。

另一个解决方案是 您可以使用请求参数传递消息id,并使用write实用程序在重定向控制器的get请求中使用消息id从属性文件读取消息

控制器1

return "redirect:your_redirection_url?messageId=1";
控制器2(重定向的位置)


你能发布你的控制器代码吗?非常感谢。。完全符合要求。。谢谢:)
if (messageid != null && !(messageid.equals(""))) { MessageUtility.addMessage(Integer.parseInt(messageid), model, locale); }