DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=35600>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=35600

           Summary: thought about the ActionRedirect
           Product: Struts
           Version: 1.2.7
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: Utilities
        AssignedTo: dev@struts.apache.org
        ReportedBy: [EMAIL PROTECTED]


Hi!

Just some thought about the ActionRedirect class.
It's realy useful, but i miss 2 really simple feature.
- it should handle all kind of parameter, specially int and long (used for id's)
, that
would make the code cleaner (no conversion)
- the programmer should also be able to set or unset redirect (i speak about the
ActionForward#setRedirect).
Not very important anyway, but can come handy.

have a nice day,
Attila

PS: For my part, i use something like that:

//-------------------------------

ActionForwardParameters afp = new ActionForwardParameters(mapping);    
afp.add(USER_ID,userId);
afp.setRedirect(true);
return afp.forward("deleteuser");                   

//------------------------------- 

public class ActionForwardParameters 
{

                private Map params = new HashMap();
                private boolean redirect = false;
                private ActionMapping mapping;
                
                public ActionForwardParameters(ActionMapping mapping)
                {
                        this.mapping = mapping;         
                }
                
                public ActionForwardParameters add(Hashtable parametersValues) 
                {
                        for(Iterator i 
=parametersValues.keySet().iterator();i.hasNext();)
                        {
                                String key = (String) i.next();
                                params.put(key,(String) 
parametersValues.get(key));
                        }
        
                        return this;
                }

                public ActionForwardParameters add(String key, String value) 
                {
                        params.put(key,value);       
                        return this;
                }
                
                public ActionForwardParameters add(String key, Object value) 
                {    
                        return add(key, value.toString());
                }

                public ActionForwardParameters add(String key, int value) 
                {    
                        return add(key, Integer.toString(value)) ;
                }

                public ActionForwardParameters add(String key, long value) 
                {    
                        return add(key, Long.toString(value));
                }

                public ActionForwardParameters add(String key, double value) 
                {    
                        return add(key, Double.toString(value));
                }

                public ActionForwardParameters add(String key, float value) 
                {    
                        return add(key, Float.toString(value));
                }

                public ActionForwardParameters add(String key, boolean value) 
                {    
                        return add(key, Boolean.toString(value));
                }
                
                public void setRedirect(boolean redirect)
                {
                    this.redirect = redirect;
                }

                public ActionForward forward(String name) 
                {
                        ActionForward forward = mapping.findForward(name);
                        StringBuffer path = new StringBuffer(forward.getPath());
                        
                        boolean hasParam = true;
                        if(path.indexOf("?") == -1) hasParam = false;
                        
                        Iterator iter = params.entrySet().iterator();
                        if (iter.hasNext()) 
                        {
                                Map.Entry entry = (Map.Entry) iter.next();
                                if(hasParam) path.append("&");
                                else path.append("?");
                                path.append(entry.getKey() + "=" + 
entry.getValue());
                                while (iter.hasNext()) 
                                {
                                        entry = (Map.Entry) iter.next();
                                        path.append("&" + entry.getKey() + "=" 
+ entry.getValue());
                                }
                        }
                        
                        ActionForward newForward = new 
ActionForward(path.toString());
                        newForward.setRedirect(redirect);
                        return newForward;
                }
}

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to