Author: niallp Date: Wed Nov 1 17:25:34 2006 New Revision: 470163 URL: http://svn.apache.org/viewvc?view=rev&rev=470163 Log: Fix for STR-2967 - Add "module" attribute to ImageTag - patch supplied by Michael Coram
- added to vanilla, nested and el taglibs - added an example page in the examples webapp Added: struts/struts1/trunk/apps/examples/src/main/webapp/exercise/html-image.jsp (with props) Modified: struts/struts1/trunk/apps/examples/src/main/webapp/WEB-INF/exercise/struts-config.xml struts/struts1/trunk/apps/examples/src/main/webapp/exercise/index.html struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTag.java struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTagBeanInfo.java struts/struts1/trunk/el/src/main/resources/META-INF/tld/struts-html-el.tld struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-html.tld struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-nested.tld Modified: struts/struts1/trunk/apps/examples/src/main/webapp/WEB-INF/exercise/struts-config.xml URL: http://svn.apache.org/viewvc/struts/struts1/trunk/apps/examples/src/main/webapp/WEB-INF/exercise/struts-config.xml?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/apps/examples/src/main/webapp/WEB-INF/exercise/struts-config.xml (original) +++ struts/struts1/trunk/apps/examples/src/main/webapp/WEB-INF/exercise/struts-config.xml Wed Nov 1 17:25:34 2006 @@ -52,6 +52,8 @@ <action path="/html-img-action" type="org.apache.struts.webapp.exercise.ImageAction" parameter="/exercise/struts-power.gif"/> + <action path="/html-image" forward="/html-image.jsp" + name="testbean" scope="session" validate="false"/> <action path="/html-link" forward="/html-link.jsp"/> <action path="/html-link-submit" type="org.apache.struts.webapp.exercise.HtmlSettersAction" Added: struts/struts1/trunk/apps/examples/src/main/webapp/exercise/html-image.jsp URL: http://svn.apache.org/viewvc/struts/struts1/trunk/apps/examples/src/main/webapp/exercise/html-image.jsp?view=auto&rev=470163 ============================================================================== --- struts/struts1/trunk/apps/examples/src/main/webapp/exercise/html-image.jsp (added) +++ struts/struts1/trunk/apps/examples/src/main/webapp/exercise/html-image.jsp Wed Nov 1 17:25:34 2006 @@ -0,0 +1,47 @@ +<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> +<html> + <head> + <title>Test struts-html:image Tag</title> + </head> + <body> + <div align="center"> + <h1>Test struts-html:image Tag</h1> + <p> + Click on the <strong><i>powered by</i></strong> images below to submit the form: + </p> + <p> + Last Submitted: + <font color="blue"> + <%= new java.util.Date() %> + </font> + </p> + </div> + <html:form> + <table border="1" cellspacing="2" cellpadding="4" align="center"> + <tr> + <td>Standard image tag</td> + <td> + <input type="image" src="struts-power.gif"> + </td> + </tr> + <tr> + <td>Struts image tag via page attribute</td> + <td> + <html:image page="/struts-power.gif" /> + </td> + </tr> + <tr> + <td>Struts image tag via page attribute, current module</td> + <td> + <html:image page="/struts-power.gif"/> + </td> + </tr> + <tr> + <td>Struts image tag via page attribute, default module</td> + <td> + <html:image page="/struts-power.gif" module="/validator"/> + </td> + </tr> + </html:form> + </body> +</html> Propchange: struts/struts1/trunk/apps/examples/src/main/webapp/exercise/html-image.jsp ------------------------------------------------------------------------------ svn:eol-style = native Propchange: struts/struts1/trunk/apps/examples/src/main/webapp/exercise/html-image.jsp ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Modified: struts/struts1/trunk/apps/examples/src/main/webapp/exercise/index.html URL: http://svn.apache.org/viewvc/struts/struts1/trunk/apps/examples/src/main/webapp/exercise/index.html?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/apps/examples/src/main/webapp/exercise/index.html (original) +++ struts/struts1/trunk/apps/examples/src/main/webapp/exercise/index.html Wed Nov 1 17:25:34 2006 @@ -46,6 +46,8 @@ <li><a href="html-img.do"><html:img></a></li> + <li><a href="html-image.do"><html:image></a></li> + <li><a href="html-link.do"><html:link></a></li> <li><a href="html-multibox.do"><html:multibox></a></li> Modified: struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTag.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTag.java?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTag.java (original) +++ struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTag.java Wed Nov 1 17:25:34 2006 @@ -87,6 +87,12 @@ private String localeExpr; /** + * Instance variable mapped to "module" tag attribute. (Mapping set in + * associated BeanInfo class.) + */ + private String moduleExpr; + + /** * Instance variable mapped to "onblur" tag attribute. (Mapping set in * associated BeanInfo class.) */ @@ -309,6 +315,14 @@ } /** + * Getter method for "module" tag attribute. (Mapping set in associated + * BeanInfo class.) + */ + public String getModuleExpr() { + return (moduleExpr); + } + + /** * Getter method for "onblur" tag attribute. (Mapping set in associated * BeanInfo class.) */ @@ -581,6 +595,14 @@ } /** + * Setter method for "module" tag attribute. (Mapping set in associated + * BeanInfo class.) + */ + public void setModuleExpr(String moduleExpr) { + this.moduleExpr = moduleExpr; + } + + /** * Setter method for "onblur" tag attribute. (Mapping set in associated * BeanInfo class.) */ @@ -794,6 +816,7 @@ setDisabledExpr(null); setIndexedExpr(null); setLocaleExpr(null); + setModuleExpr(null); setOnblurExpr(null); setOnchangeExpr(null); setOnclickExpr(null); @@ -895,6 +918,12 @@ EvalHelper.evalString("locale", getLocaleExpr(), this, pageContext)) != null) { setLocale(string); + } + + if ((string = + EvalHelper.evalString("module", getModuleExpr(), this, + pageContext)) != null) { + setModule(string); } if ((string = Modified: struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTagBeanInfo.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTagBeanInfo.java?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTagBeanInfo.java (original) +++ struts/struts1/trunk/el/src/main/java/org/apache/strutsel/taglib/html/ELImageTagBeanInfo.java Wed Nov 1 17:25:34 2006 @@ -93,6 +93,12 @@ } try { + proplist.add(new PropertyDescriptor("module", ELImageTag.class, + null, "setModuleExpr")); + } catch (IntrospectionException ex) { + } + + try { proplist.add(new PropertyDescriptor("onblur", ELImageTag.class, null, "setOnblurExpr")); } catch (IntrospectionException ex) { Modified: struts/struts1/trunk/el/src/main/resources/META-INF/tld/struts-html-el.tld URL: http://svn.apache.org/viewvc/struts/struts1/trunk/el/src/main/resources/META-INF/tld/struts-html-el.tld?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/el/src/main/resources/META-INF/tld/struts-html-el.tld (original) +++ struts/struts1/trunk/el/src/main/resources/META-INF/tld/struts-html-el.tld Wed Nov 1 17:25:34 2006 @@ -2749,6 +2749,18 @@ </description> </attribute> <attribute> + <name>module</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Prefix name of a <code>Module</code> that + the <code>page</code> or <code>pageKey</code> + attributes relate to.</p> + ]]> + </description> + </attribute> + <attribute> <name>onblur</name> <required>false</required> <rtexprvalue>true</rtexprvalue> Modified: struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java (original) +++ struts/struts1/trunk/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java Wed Nov 1 17:25:34 2006 @@ -20,6 +20,7 @@ import org.apache.struts.Globals; import org.apache.struts.config.ModuleConfig; import org.apache.struts.taglib.TagUtils; +import org.apache.struts.util.ModuleUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -64,6 +65,12 @@ */ protected String srcKey = null; + /** + * The module prefix (beginning with a slash) which will be used to find + * the action for this link. + */ + protected String module = null; + // --------------------------------------------------------- Constructor public ImageTag() { super(); @@ -124,6 +131,14 @@ this.srcKey = srcKey; } + public String getModule() { + return (this.module); + } + + public void setModule(String module) { + this.module = module; + } + // --------------------------------------------------------- Protected Methods /** @@ -191,12 +206,13 @@ throw e; } - ModuleConfig config = - (ModuleConfig) pageContext.getRequest().getAttribute(Globals.MODULE_KEY); - HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); + ModuleConfig config = + ModuleUtils.getInstance().getModuleConfig(this.module, + request, pageContext.getServletContext()); + String pageValue = this.page; if (config != null) { @@ -217,11 +233,12 @@ throw e; } - ModuleConfig config = - (ModuleConfig) pageContext.getRequest().getAttribute(Globals.MODULE_KEY); - HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); + + ModuleConfig config = + ModuleUtils.getInstance().getModuleConfig(this.module, + request, pageContext.getServletContext()); String pageValue = TagUtils.getInstance().message(pageContext, getBundle(), Modified: struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-html.tld URL: http://svn.apache.org/viewvc/struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-html.tld?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-html.tld (original) +++ struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-html.tld Wed Nov 1 17:25:34 2006 @@ -2967,6 +2967,18 @@ </description> </attribute> <attribute> + <name>module</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Prefix name of a <code>Module</code> that + the <code>page</code> or <code>pageKey</code> + attributes relate to.</p> + ]]> + </description> + </attribute> + <attribute> <name>onblur</name> <required>false</required> <rtexprvalue>true</rtexprvalue> Modified: struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-nested.tld URL: http://svn.apache.org/viewvc/struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-nested.tld?view=diff&rev=470163&r1=470162&r2=470163 ============================================================================== --- struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-nested.tld (original) +++ struts/struts1/trunk/taglib/src/main/resources/META-INF/tld/struts-nested.tld Wed Nov 1 17:25:34 2006 @@ -1347,6 +1347,11 @@ <description/> </attribute> <attribute> + <name>module</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> <name>onblur</name> <required>false</required> <rtexprvalue>true</rtexprvalue>