Radek Wisniewski wrote:

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



Reply via email to