You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by ni...@apache.org on 2006/11/02 02:25:35 UTC

svn commit: r470163 - in /struts/struts1/trunk: apps/examples/src/main/webapp/WEB-INF/exercise/ apps/examples/src/main/webapp/exercise/ el/src/main/java/org/apache/strutsel/taglib/html/ el/src/main/resources/META-INF/tld/ taglib/src/main/java/org/apach...

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">&lt;html:img&gt;</a></li>
 
+    <li><a href="html-image.do">&lt;html:image&gt;</a></li>
+
     <li><a href="html-link.do">&lt;html:link&gt;</a></li>
 
     <li><a href="html-multibox.do">&lt;html:multibox&gt;</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>