I send patches for bug http://issues.apache.org/bugzilla/show_bug.cgi?id=21408
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.
-- Radek Wisniewski
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]
