Hi,
I send patches for bug http://issues.apache.org/bugzilla/show_bug.cgi?id=21408
Could you attach them to the bug report ?
If you don't have a BugZilla account, it is easy to create. It takes only 20 seconds.
-Rob
One patch in RequestProcessor saves errors in sesion in case of redirection.
Patch for TagUtils reads errors from request or reads and removes from session.
------------------------------------------------------------------------
Index: RequestProcessor.java
===================================================================
RCS file: /home/cvspublic/jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java,v
retrieving revision 1.32
diff -u -r1.32 RequestProcessor.java
--- RequestProcessor.java 2 Jul 2003 04:06:53 -0000 1.32
+++ RequestProcessor.java 13 Aug 2003 15:23:40 -0000
@@ -409,6 +409,15 @@
}
if (forward.getRedirect()) {
+ //save errors in session, if any
+ Object errors = request.getAttribute(org.apache.struts.Globals.ERROR_KEY);
+ if(errors != null){
+ //it is not the best place to create session, use "false"
+ HttpSession session = request.getSession(false);
+ if(session != null){
+ session.setAttribute(org.apache.struts.Globals.ERROR_KEY, errors);
+ }
+ }
// only prepend context path for relative uri
if (uri.startsWith("/")) {
uri = request.getContextPath() + uri;
------------------------------------------------------------------------
Index: TagUtils.java =================================================================== RCS file: /home/cvspublic/jakarta-struts/src/share/org/apache/struts/taglib/TagUtils.java,v retrieving revision 1.22 diff -u -r1.22 TagUtils.java --- TagUtils.java 2 Aug 2003 22:19:37 -0000 1.22 +++ TagUtils.java 13 Aug 2003 15:23:06 -0000 @@ -636,7 +636,18 @@
ActionErrors errors = new ActionErrors();
- Object value = pageContext.findAttribute(paramName);
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); + Object value = request.getAttribute(paramName);
+ if(value == null){
+ //if it was redirection, errors could be in session
+ HttpSession session = request.getSession(false);
+ if(session != null){
+ value = session.getAttribute(paramName);
+ if(value != null){
+ session.removeAttribute(paramName);
+ }
+ }
+ }
try { if (value == null) {
------------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Robert Leland [EMAIL PROTECTED] ------------------------------------------ Java, J2EE, Struts, Web Application Development
804 N. Kenmore Street +01-703-525-3580 Arlington VA 22201