Some OGNL expressions do not work with DateTimePicker component (and possibly 
other)
------------------------------------------------------------------------------------

                 Key: WW-2480
                 URL: https://issues.apache.org/struts/browse/WW-2480
             Project: Struts 2
          Issue Type: Bug
          Components: Plugin - Tags
    Affects Versions: 2.0.11
            Reporter: Mike Calmus


Certain expressions do not parse when using the DateTimePicker tag. This same 
expression works fine with the textfield tag:

The following line throws a parse exception.
        <s:datetimepicker name="aList.get(%{#attr['item_rowNum'] - 
1}).startDate" />
whereas this works fine:
        <s:textfield name="aList.get(%{#attr['item_rowNum'] - 1}).startDate" />

The problem seems to be that the latter uses the standard UIBean 
evaluateParams()  implementation whereas the former overrides it. This caused a 
problem with a third-party component as well. Based upon code usage, I believe 
this may affect other components as well. The following patch should fix both 
built-in as well as third-party modules:

Index: core/src/main/java/org/apache/struts2/components/UIBean.java
===================================================================
--- core/src/main/java/org/apache/struts2/components/UIBean.java        
(revision 620628)
+++ core/src/main/java/org/apache/struts2/components/UIBean.java        
(working copy)
@@ -588,8 +588,6 @@
         addParameter("templateDir", getTemplateDir());
         addParameter("theme", getTheme());

-        String name = null;
-
         if (this.key != null) {

            if(this.name == null) {
@@ -603,8 +601,8 @@
         }

         if (this.name != null) {
-            name = findString(this.name);
-            addParameter("name", name);
+            this.name = findString(this.name);
+            addParameter("name", this.name);
         }

         if (label != null) {

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to