Author: pbenedict Date: Fri Sep 1 21:46:01 2006 New Revision: 439533 URL: http://svn.apache.org/viewvc?rev=439533&view=rev Log: STR-2864: FormTag to recognize actionId, plus any tags that can build URLs from an action
Modified: struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java Modified: struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java?rev=439533&r1=439532&r2=439533&view=diff ============================================================================== --- struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java (original) +++ struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java Fri Sep 1 21:46:01 2006 @@ -24,6 +24,7 @@ import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +import org.apache.struts.action.ActionServlet; import org.apache.struts.config.ForwardConfig; import org.apache.struts.config.ModuleConfig; import org.apache.struts.taglib.html.Constants; @@ -388,8 +389,16 @@ } else if (href != null) { url.append(href); } else if (action != null) { - url.append(instance.getActionMappingURL(action, module, - pageContext, false)); + ActionServlet servlet = (ActionServlet) pageContext.getServletContext().getAttribute(Globals.ACTION_SERVLET_KEY); + String actionIdPath = RequestUtils.actionIdURL(action, moduleConfig, servlet); + if (actionIdPath != null) { + action = actionIdPath; + url.append(request.getContextPath()); + url.append(actionIdPath); + } else { + url.append(instance.getActionMappingURL(action, module, + pageContext, false)); + } } else /* if (page != null) */ { url.append(request.getContextPath()); Modified: struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java?rev=439533&r1=439532&r2=439533&view=diff ============================================================================== --- struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java (original) +++ struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java Fri Sep 1 21:46:01 2006 @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2006 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionServlet; +import org.apache.struts.config.ActionConfig; import org.apache.struts.config.FormBeanConfig; import org.apache.struts.config.ModuleConfig; import org.apache.struts.taglib.TagUtils; @@ -764,6 +765,13 @@ postbackAction = postbackAction.substring(prefix.length()); } calcAction = postbackAction; + } else { + // Translate the action if it is an actionId + ActionConfig actionConfig = moduleConfig.findActionConfigId(this.action); + if (actionConfig != null) { + this.action = actionConfig.getPath(); + calcAction = this.action; + } } servlet =