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.