控制器A显示一些数据并显示一个表格。
表格提交给控制器B。
当在控制器B中发现表格错误时,该表格需要由控制器A重新显示。
为此,需要输入return redirect "blah"A。
return redirect "blah"
为了使用重定向将错误传递回控制器A,我可以在模型中设置错误消息:
model.put("errormsg", "look what happened");
这具有将错误消息的整个文本放入URL的烦人效果:
/controllera/somemethod?errormsg=look+what+happened
但是,即使我在URL上看到了文本,当我尝试从JSTL中显示该文本时,也没有显示任何内容:
<c:out value="${errormsg}"/>
是否有更好的方法来解决所有这些问题?
恕我直言,更好的方法是使用标准方案:控制器A显示表单,将数据提交给控制器A,如果发生错误,则控制器A显示错误。如果数据有效,则控制器A确实重定向到控制器B。