我有一个带有2个输入框的jsp,可以搜索2种不同的场景。所以,我有两个不同的Get请求映射到/ search1和/ search2,但为此只创建了一个POJO。 一旦用户提交搜索,我检查是否有任何结果,如果不是我在模型中添加错误消息和“重定向:”(重定向,因为如果我只是返回一个页面,现在进行新的搜索,网址将be / search1 / search2)到同一个基本页面。
但是每次加载页面时都会出现错误信息。 有什么解决方法吗?我如何只在搜索时显示messaeg。
答案 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); }