问题是这样的:在Action存在错误的时候,需要Redirect到一个页面,并且使用</html:errors>显示错误。
这个需要使用saveErrors方法,Struts定义了两个saveErrors方法,如下:
protected void saveErrors (HttpServletRequest request, ActionMessages errors);
protected void saveErrors (HttpSession session, ActionMessages errors) ;
毫无疑问要保存在session中,但是我担心error会一直留在session中,导致凡是</html:errors>处会一直显示错误信息。
但是我却发现不是这么回事,为什么呢?这就需要去看</html:errors>这个Tag的源码,我特地去看了一下。
原来获取ActionMessages 是在pageContext中获取的,而不是直接在request或者session里获取的,因为就不会出现一直显示的问题了。
本文探讨了Struts框架中如何处理Action错误并将其传递给视图层显示的问题。重点介绍了两种saveErrors方法的区别及</html:errors>标签的工作原理。
2134

被折叠的 条评论
为什么被折叠?



