You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/07/30 09:16:37 UTC

[01/17] git commit: [PATCH] First attempt at enabling value-labels to be pulled from Locale Files. Adding listValueKey attribute to checkboxList, radioMap, and select tags.

Repository: struts
Updated Branches:
  refs/heads/develop 935cd33f7 -> 09012d7e5
  refs/heads/feature/WW-4295-localization d20c2f10b -> 8e6f198d4


[PATCH] First attempt at enabling value-labels to be pulled from
 Locale Files.  Adding listValueKey attribute to checkboxList, radioMap, and
 select tags.

Issues:
This implementation uses the <@s.text> tag to handle the localization with an assignment. I presume this is less than idea, but I lack the knowledge of the Struts2 tag model that would suggest where to check for this on the valueStack or elsewhere.

Example:

public enum yesno {
YES, NO;
}

<@s.radio name="yes no" list="#{yesno.values()}" valueKey="name()" />

<!-- this will look for the name() in the locale file and emit the localized value for the label of the radio button.


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/7f586d39
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/7f586d39
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/7f586d39

Branch: refs/heads/develop
Commit: 7f586d39b7f8411e22fd13de8025f1866477fc3c
Parents: 3ceb3b9
Author: adam brin <ad...@asu.edu>
Authored: Tue Mar 18 07:36:28 2014 -0700
Committer: adam brin <ad...@asu.edu>
Committed: Tue Mar 18 07:36:28 2014 -0700

----------------------------------------------------------------------
 core/src/main/resources/template/simple/checkboxlist.ftl | 8 +++++++-
 core/src/main/resources/template/simple/radiomap.ftl     | 8 +++++++-
 core/src/main/resources/template/simple/select.ftl       | 8 +++++++-
 3 files changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/7f586d39/core/src/main/resources/template/simple/checkboxlist.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/checkboxlist.ftl b/core/src/main/resources/template/simple/checkboxlist.ftl
index ba04196..9662e42 100644
--- a/core/src/main/resources/template/simple/checkboxlist.ftl
+++ b/core/src/main/resources/template/simple/checkboxlist.ftl
@@ -29,7 +29,13 @@
         <#else>
             <#assign itemKey = stack.findValue('top')/>
     </#if>
-    <#if parameters.listValue??>
+  <#if parameters.listValueKey??>
+    <#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale 
+       file for it's localized value.  This is then used as a label -->
+    <#assign itemValue = stack.findString(parameters.listValueKey)/>
+    <#-- FIXME: find a better way to get the value than a call to @s.text -->
+    <#assign itemValue><@s.text name="${itemValue}"/></#assign>
+    <#elseif parameters.listValue??>
         <#assign itemValue = stack.findString(parameters.listValue)?default("")/>
         <#else>
             <#assign itemValue = stack.findString('top')/>

http://git-wip-us.apache.org/repos/asf/struts/blob/7f586d39/core/src/main/resources/template/simple/radiomap.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/radiomap.ftl b/core/src/main/resources/template/simple/radiomap.ftl
index ab6d42c..183fd57 100644
--- a/core/src/main/resources/template/simple/radiomap.ftl
+++ b/core/src/main/resources/template/simple/radiomap.ftl
@@ -27,7 +27,13 @@
         <#assign itemKey = stack.findValue('top')/>
     </#if>
     <#assign itemKeyStr = itemKey.toString() />
-    <#if parameters.listValue??>
+    <#if parameters.listValueKey??>
+        <#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale 
+             file for it's localized value.  This is then used as a label -->
+        <#assign itemValue = stack.findString(parameters.listValueKey)/>
+        <#-- FIXME: find a better way to get the value than a call to @s.text -->
+        <#assign itemValue><@s.text name="${itemValue}"/></#assign>
+    <#elseif parameters.listValue??>
         <#assign itemValue = stack.findString(parameters.listValue)/>
     <#else>
         <#assign itemValue = stack.findString('top')/>

http://git-wip-us.apache.org/repos/asf/struts/blob/7f586d39/core/src/main/resources/template/simple/select.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/select.ftl b/core/src/main/resources/template/simple/select.ftl
index 74277e6..f4f27bf 100644
--- a/core/src/main/resources/template/simple/select.ftl
+++ b/core/src/main/resources/template/simple/select.ftl
@@ -69,7 +69,13 @@
             <#assign itemKey = stack.findValue('top')/>
             <#assign itemKeyStr = stack.findString('top')>
         </#if>
-        <#if parameters.listValue??>
+        <#if parameters.listValueKey??>
+          <#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale file for it's 
+             localized value.  This is then used as a label -->
+          <#assign itemValue = stack.findString(parameters.listValueKey)/>
+          <#-- FIXME: find a better way to get the value than a call to @s.text -->
+          <#assign itemValue><@s.text name="${itemValue}"/></#assign>
+        <#elseif parameters.listValue??>
             <#if stack.findString(parameters.listValue)??>
               <#assign itemValue = stack.findString(parameters.listValue)/>
             <#else>


[07/17] git commit: Merge remote-tracking branch 'abrin/feature-WW-4295-localization' into feature/WW-4295-localization

Posted by lu...@apache.org.
Merge remote-tracking branch 'abrin/feature-WW-4295-localization' into feature/WW-4295-localization


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/23498a33
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/23498a33
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/23498a33

Branch: refs/heads/develop
Commit: 23498a332119486a043e852366dfb73495a510d9
Parents: b78349a 6def514
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jun 27 08:40:49 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jun 27 08:40:49 2014 +0200

----------------------------------------------------------------------
 .../java/org/apache/struts2/components/ListUIBean.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/23498a33/core/src/main/java/org/apache/struts2/components/ListUIBean.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/struts2/components/ListUIBean.java
index 11e59aa,69deae4..c9f704a
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@@ -48,8 -48,8 +48,9 @@@ import java.util.Map
  public abstract class ListUIBean extends UIBean {
      protected Object list;
      protected String listKey;
+     protected String listValueKey;
      protected String listValue;
 +    protected String listLabelKey;
      protected String listCssClass;
      protected String listCssStyle;
      protected String listTitle;


[13/17] git commit: Merge branch 'develop' into feature/WW-4295-localization

Posted by lu...@apache.org.
Merge branch 'develop' into feature/WW-4295-localization

Conflicts:
	core/src/site/resources/tags/checkboxlist.html


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d20c2f10
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d20c2f10
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d20c2f10

Branch: refs/heads/develop
Commit: d20c2f10b7ccb2830eb255062b45941684b55336
Parents: d67fce1 63de773
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jun 27 13:15:10 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jun 27 13:15:10 2014 +0200

----------------------------------------------------------------------
 apps/blank/pom.xml                              |   2 +-
 apps/jboss-blank/pom.xml                        |   2 +-
 apps/mailreader/pom.xml                         |   2 +-
 apps/pom.xml                                    |   2 +-
 apps/portlet/pom.xml                            |   2 +-
 apps/rest-showcase/pom.xml                      |   4 +-
 apps/showcase/pom.xml                           |   2 +-
 archetypes/pom.xml                              |   2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  |   2 +-
 archetypes/struts2-archetype-blank/pom.xml      |   2 +-
 .../src/main/resources/example.xml              |   6 +-
 .../main/webapp/WEB-INF/example/HelloWorld.jsp  |  28 ++
 .../src/main/webapp/WEB-INF/example/Login.jsp   |  15 +
 .../src/main/webapp/WEB-INF/example/Menu.jsp    |   3 +
 .../src/main/webapp/WEB-INF/example/Missing.jsp |  11 +
 .../main/webapp/WEB-INF/example/Register.jsp    |   3 +
 .../src/main/webapp/WEB-INF/example/Welcome.jsp |  18 +
 .../src/main/webapp/example/HelloWorld.jsp      |  28 --
 .../src/main/webapp/example/Login.jsp           |  15 -
 .../src/main/webapp/example/Menu.jsp            |   3 -
 .../src/main/webapp/example/Missing.jsp         |  11 -
 .../src/main/webapp/example/Register.jsp        |   3 -
 .../src/main/webapp/example/Welcome.jsp         |  18 -
 archetypes/struts2-archetype-convention/pom.xml |   2 +-
 archetypes/struts2-archetype-dbportlet/pom.xml  |   2 +-
 archetypes/struts2-archetype-plugin/pom.xml     |   2 +-
 archetypes/struts2-archetype-portlet/pom.xml    |   2 +-
 archetypes/struts2-archetype-starter/pom.xml    |   2 +-
 .../src/main/resources/struts.xml               |   4 +-
 .../src/main/webapp/WEB-INF/jsp/helloWorld.jsp  |  16 +
 .../src/main/webapp/WEB-INF/jsp/index.jsp       |  20 +
 .../src/main/webapp/jsp/helloWorld.jsp          |  16 -
 .../src/main/webapp/jsp/index.jsp               |  20 -
 assembly/pom.xml                                |  88 ++---
 assembly/src/main/assembly/all.xml              |  12 +-
 assembly/src/main/assembly/docs.xml             |   2 +-
 bundles/admin/pom.xml                           |   2 +-
 bundles/demo/pom.xml                            |   2 +-
 bundles/pom.xml                                 |   2 +-
 core/pom.xml                                    |   2 +-
 .../org/apache/struts2/StrutsConstants.java     |  16 +
 .../struts2/components/DateTextField.java       |  51 +++
 .../struts2/components/GenericUIBean.java       |   5 +-
 .../org/apache/struts2/components/UIBean.java   |   9 +-
 .../config/DefaultBeanSelectionProvider.java    |  22 +-
 .../dispatcher/ServletRedirectResult.java       |  48 ++-
 .../struts2/dispatcher/StrutsResultSupport.java |  75 +++-
 .../struts2/interceptor/CookieInterceptor.java  |  75 +++-
 .../interceptor/DateTextFieldInterceptor.java   | 128 +++++++
 .../views/freemarker/FreemarkerResult.java      |  18 +-
 .../struts2/views/jsp/ui/DateTextFieldTag.java  |  35 ++
 .../org/apache/struts2/default.properties       |   6 +-
 .../struts2/interceptor/debugging/browser.ftl   |  21 +-
 .../struts2/interceptor/debugging/console.ftl   |   4 +-
 .../interceptor/debugging/webconsole.html       |  30 +-
 .../struts2/interceptor/debugging/webconsole.js |  99 +++--
 core/src/main/resources/struts-default.xml      |  32 +-
 .../resources/template/css_xhtml/checkbox.ftl   |  17 +-
 .../template/css_xhtml/controlfooter.ftl        |   7 +-
 .../template/css_xhtml/controlheader-core.ftl   |   9 +-
 .../template/css_xhtml/controlheader.ftl        |   7 +-
 .../main/resources/template/css_xhtml/reset.ftl |   9 +-
 .../template/css_xhtml/submit-close.ftl         |   7 +-
 .../resources/template/css_xhtml/submit.ftl     |   7 +-
 .../resources/template/simple/checkboxlist.ftl  |  14 +-
 .../main/resources/template/simple/radiomap.ftl |   8 -
 .../main/resources/template/xhtml/checkbox.ftl  |  15 +-
 .../template/xhtml/controlheader-core.ftl       |   9 +-
 core/src/site/resources/tags/datetextfield.html | 376 +++++++++++++++++++
 .../struts2/TestConfigurationProvider.java      |   5 +
 .../dispatcher/ServletRedirectResultTest.java   | 109 ++++--
 .../dispatcher/StrutsResultSupportTest.java     |  31 ++
 .../interceptor/CookieInterceptorTest.java      | 130 +++++++
 .../DateTextFieldInterceptorTest.java           |  58 +++
 .../ExecuteAndWaitInterceptorTest.java          |   2 +
 .../views/freemarker/FreeMarkerResultTest.java  |   3 +
 .../struts2/views/jsp/PropertyTagTest.java      |  30 +-
 .../struts2/views/jsp/ui/FormTagTest.java       |  82 ++++
 .../apache/struts2/views/jsp/ui/SelectTest.java |   2 +-
 .../apache/struts2/views/jsp/ui/Formtag-27.txt  |  10 +
 .../apache/struts2/views/jsp/ui/Formtag-28.txt  |  10 +
 plugins/cdi/pom.xml                             |   2 +-
 plugins/codebehind/pom.xml                      |   2 +-
 plugins/config-browser/pom.xml                  |   2 +-
 plugins/convention/pom.xml                      |   2 +-
 plugins/dojo/pom.xml                            |   2 +-
 plugins/dwr/pom.xml                             |   2 +-
 plugins/embeddedjsp/pom.xml                     |   2 +-
 plugins/gxp/pom.xml                             |   2 +-
 plugins/jasperreports/pom.xml                   |   2 +-
 plugins/javatemplates/pom.xml                   |   2 +-
 .../apache/struts2/views/java/DefaultTheme.java |   6 +-
 .../views/java/simple/DateTextFieldHandler.java |  91 +++++
 .../struts2/views/java/simple/SimpleTheme.java  |   1 +
 .../views/java/simple/DateTextFieldTest.java    |  51 +++
 plugins/jfreechart/pom.xml                      |   2 +-
 plugins/jsf/pom.xml                             |   2 +-
 plugins/json/pom.xml                            |   2 +-
 plugins/junit/pom.xml                           |   2 +-
 plugins/osgi/pom.xml                            |   2 +-
 plugins/oval/pom.xml                            |   2 +-
 plugins/pell-multipart/pom.xml                  |   2 +-
 plugins/plexus/pom.xml                          |   2 +-
 plugins/pom.xml                                 |   2 +-
 plugins/portlet-tiles/pom.xml                   |   2 +-
 plugins/portlet/pom.xml                         |   2 +-
 plugins/rest/pom.xml                            |   4 +-
 .../struts2/rest/RestActionInvocationTest.java  |   2 +
 plugins/sitegraph/pom.xml                       |   2 +-
 plugins/sitemesh/pom.xml                        |   2 +-
 plugins/spring/pom.xml                          |   2 +-
 plugins/struts1/pom.xml                         |   2 +-
 plugins/testng/pom.xml                          |   2 +-
 plugins/tiles/pom.xml                           |   2 +-
 plugins/tiles3/pom.xml                          |   2 +-
 pom.xml                                         |  14 +-
 src/site/resources/archetype-catalog.xml        |  12 +-
 xwork-core/pom.xml                              |   2 +-
 .../xwork2/DefaultActionInvocation.java         |  54 +--
 .../com/opensymphony/xwork2/XWorkConstants.java |  10 +
 .../xwork2/config/entities/ActionConfig.java    |   1 +
 .../config/entities/ExceptionMappingConfig.java |   1 +
 .../config/entities/InterceptorConfig.java      |   1 +
 .../config/entities/InterceptorStackConfig.java |   1 +
 .../xwork2/config/entities/PackageConfig.java   |   1 +
 .../xwork2/config/entities/ResultConfig.java    |   1 +
 .../config/entities/ResultTypeConfig.java       |   1 +
 .../config/entities/UnknownHandlerConfig.java   |   8 +-
 .../config/impl/DefaultConfiguration.java       |   7 +
 .../providers/XWorkConfigurationProvider.java   |  11 +-
 .../providers/XmlConfigurationProvider.java     |   5 +-
 .../conversion/impl/DefaultTypeConverter.java   |   4 +-
 .../xwork2/interceptor/I18nInterceptor.java     |   2 +-
 .../interceptor/ParametersInterceptor.java      | 127 ++++---
 .../opensymphony/xwork2/mock/MockResult.java    |   2 +
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  | 158 ++++++--
 .../xwork2/ognl/OgnlValueStack.java             |   6 +-
 .../xwork2/ognl/SecurityMemberAccess.java       |  50 ++-
 .../ognl/accessor/CompoundRootAccessor.java     |  27 +-
 .../security/AcceptedPatternsChecker.java       |  82 ++++
 .../DefaultAcceptedPatternsChecker.java         |  86 +++++
 .../DefaultExcludedPatternsChecker.java         |  95 +++++
 .../security/ExcludedPatternsChecker.java       |  82 ++++
 .../xwork2/spring/SpringObjectFactory.java      |   2 +-
 .../opensymphony/xwork2/util/TextParseUtil.java |  87 +++++
 .../xwork2/util/logging/Logger.java             |   4 +
 .../util/logging/commons/CommonsLogger.java     |   4 +
 .../xwork2/util/logging/jdk/JdkLogger.java      |   4 +
 .../xwork2/util/logging/slf4j/Slf4jLogger.java  |   4 +
 .../validator/DelegatingValidatorContext.java   |  21 +-
 .../xwork2/DefaultActionInvocationTest.java     |   8 +
 .../impl/AnnotationXWorkConverterTest.java      |  10 +-
 .../interceptor/ParametersInterceptorTest.java  | 168 ++++++++-
 .../opensymphony/xwork2/ognl/OgnlUtilTest.java  | 164 +++++++-
 .../xwork2/ognl/OgnlValueStackTest.java         |   1 +
 .../xwork2/ognl/SecurityMemberAccessTest.java   | 236 ++++++++++++
 .../DefaultAcceptedPatternsCheckerTest.java     |  56 +++
 .../DefaultExcludedPatternsCheckerTest.java     |  60 +++
 .../xwork2/util/TextParseUtilTest.java          |  45 ++-
 .../validator/VisitorFieldValidatorTest.java    |   2 +-
 .../xwork2/AnnotatedTestBean.properties         |   5 -
 .../TestBean-beanMessageBundle-validation.xml   |   2 +-
 .../test/resources/xwork-class-param-test.xml   |  11 +
 .../src/test/resources/xwork-param-test.xml     |   1 +
 .../src/test/resources/xwork-test-beans.xml     |  24 +-
 165 files changed, 3335 insertions(+), 657 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/d20c2f10/core/src/main/resources/template/simple/checkboxlist.ftl
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/d20c2f10/core/src/main/resources/template/simple/radiomap.ftl
----------------------------------------------------------------------


[02/17] git commit: Adds additional field to allow set label key used in I18N lookup

Posted by lu...@apache.org.
Adds additional field to allow set label key used in I18N lookup


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/90189362
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/90189362
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/90189362

Branch: refs/heads/develop
Commit: 901893628b31ee3b38b2fc9196045a097a0f4217
Parents: 7f586d3
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 20 08:08:03 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 20 08:08:03 2014 +0100

----------------------------------------------------------------------
 .../java/org/apache/struts2/components/ListUIBean.java   | 11 +++++++++++
 .../org/apache/struts2/views/jsp/ui/AbstractListTag.java |  6 ++++++
 2 files changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/90189362/core/src/main/java/org/apache/struts2/components/ListUIBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ListUIBean.java b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
index b1a4493..11e59aa 100644
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@ -49,6 +49,7 @@ public abstract class ListUIBean extends UIBean {
     protected Object list;
     protected String listKey;
     protected String listValue;
+    protected String listLabelKey;
     protected String listCssClass;
     protected String listCssStyle;
     protected String listTitle;
@@ -115,6 +116,11 @@ public abstract class ListUIBean extends UIBean {
             addParameter("listValue", "value");
         }
 
+        if (listLabelKey != null) {
+            listLabelKey = stripExpressionIfAltSyntax(listLabelKey);
+            addParameter("listLabelKey", listLabelKey);
+        }
+
         if (listCssClass != null && listCssClass.trim().length() > 0) {
             addParameter("listCssClass", listCssClass);
         }
@@ -152,6 +158,11 @@ public abstract class ListUIBean extends UIBean {
         this.listValue = listValue;
     }
 
+    @StrutsTagAttribute(description = "Property of list objects to be used to lookup for localised version of field label")
+    public void setListLabelKey(String listLabelKey) {
+        this.listLabelKey = listLabelKey;
+    }
+
     @StrutsTagAttribute(description = "Property of list objects to get css class from")
     public void setListCssClass(String listCssClass) {
         this.listCssClass = listCssClass;

http://git-wip-us.apache.org/repos/asf/struts/blob/90189362/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
index 1f2ebb4..4972ff0 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
@@ -29,6 +29,7 @@ public abstract class AbstractListTag extends AbstractUITag {
     protected String list;
     protected String listKey;
     protected String listValue;
+    protected String listLabelKey;
     protected String listCssClass;
     protected String listCssStyle;
     protected String listTitle;
@@ -40,6 +41,7 @@ public abstract class AbstractListTag extends AbstractUITag {
         listUIBean.setList(list);
         listUIBean.setListKey(listKey);
         listUIBean.setListValue(listValue);
+        listUIBean.setListLabelKey(listLabelKey);
         listUIBean.setListCssClass(listCssClass);
         listUIBean.setListCssStyle(listCssStyle);
         listUIBean.setListTitle(listTitle);
@@ -57,6 +59,10 @@ public abstract class AbstractListTag extends AbstractUITag {
         this.listValue = listValue;
     }
 
+    public void setListLabelKey(String listLabelKey) {
+        this.listLabelKey = listLabelKey;
+    }
+
     public void setListCssClass(String listCssClass) {
         this.listCssClass = listCssClass;
     }


[09/17] git commit: Adds missing tag attribute field

Posted by lu...@apache.org.
Adds missing tag attribute field


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/13269fa1
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/13269fa1
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/13269fa1

Branch: refs/heads/develop
Commit: 13269fa15f02409732ca51545141a40ae2f4680c
Parents: ca230ab
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jun 27 12:54:44 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jun 27 12:54:44 2014 +0200

----------------------------------------------------------------------
 .../java/org/apache/struts2/views/jsp/ui/AbstractListTag.java  | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/13269fa1/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
index 4972ff0..9b96f4a 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
@@ -29,6 +29,7 @@ public abstract class AbstractListTag extends AbstractUITag {
     protected String list;
     protected String listKey;
     protected String listValue;
+    protected String listValueKey;
     protected String listLabelKey;
     protected String listCssClass;
     protected String listCssStyle;
@@ -41,6 +42,7 @@ public abstract class AbstractListTag extends AbstractUITag {
         listUIBean.setList(list);
         listUIBean.setListKey(listKey);
         listUIBean.setListValue(listValue);
+        listUIBean.setListValueKey(listValueKey);
         listUIBean.setListLabelKey(listLabelKey);
         listUIBean.setListCssClass(listCssClass);
         listUIBean.setListCssStyle(listCssStyle);
@@ -59,6 +61,10 @@ public abstract class AbstractListTag extends AbstractUITag {
         this.listValue = listValue;
     }
 
+    public void setListValueKey(String listValueKey) {
+        this.listValueKey = listValueKey;
+    }
+
     public void setListLabelKey(String listLabelKey) {
         this.listLabelKey = listLabelKey;
     }


[16/17] git commit: WW-4295 finishes work

Posted by lu...@apache.org.
WW-4295 finishes work

Conflicts:
	core/src/main/resources/template/simple/checkboxlist.ftl
	core/src/site/resources/tags/checkboxlist.html


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/3b25242c
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/3b25242c
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/3b25242c

Branch: refs/heads/develop
Commit: 3b25242c7d98d6564d81ec39f0df54bc02181f71
Parents: 935cd33 8e6f198
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Jul 30 09:10:59 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Jul 30 09:10:59 2014 +0200

----------------------------------------------------------------------
 .../blank/src/main/java/example/HelloWorld.java |  7 ++++
 apps/blank/src/main/java/example/YesNo.java     |  5 +++
 .../main/resources/example/package.properties   |  2 +
 .../webapp/WEB-INF/jsp/example/HelloWorld.jsp   |  2 +
 .../apache/struts2/components/ListUIBean.java   | 22 ++++++++++
 .../struts2/views/jsp/ui/AbstractListTag.java   | 12 ++++++
 .../resources/template/simple/checkboxlist.ftl  | 10 +++--
 .../main/resources/template/simple/radiomap.ftl |  8 +++-
 .../main/resources/template/simple/select.ftl   | 13 +++++-
 core/src/site/resources/tags/checkboxlist.html  | 16 +++++++
 core/src/site/resources/tags/doubleselect.html  | 16 +++++++
 .../resources/tags/inputtransferselect.html     | 16 +++++++
 .../resources/tags/optiontransferselect.html    | 16 +++++++
 core/src/site/resources/tags/radio.html         | 16 +++++++
 core/src/site/resources/tags/select.html        | 16 +++++++
 core/src/site/resources/tags/updownselect.html  | 16 +++++++
 .../views/jsp/ui/LocaleKeyValueTest.java        | 11 +++++
 .../struts2/views/jsp/ui/LocaleTestAction.java  | 17 ++++++++
 .../struts2/views/jsp/ui/OptGroupTest.java      | 44 ++++++++++++++++++--
 .../apache/struts2/views/jsp/ui/OptGroup-6.txt  | 40 ++++++++++++++++++
 20 files changed, 295 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/main/resources/template/simple/checkboxlist.ftl
----------------------------------------------------------------------
diff --cc core/src/main/resources/template/simple/checkboxlist.ftl
index 35c1fd3,be5f55a..d50a98f
--- a/core/src/main/resources/template/simple/checkboxlist.ftl
+++ b/core/src/main/resources/template/simple/checkboxlist.ftl
@@@ -29,10 -29,14 +29,14 @@@
          <#else>
              <#assign itemKey = stack.findValue('top')/>
      </#if>
-     <#if parameters.listValue??>
+     <#if parameters.listLabelKey??>
+     <#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale 
+        file for it's localized value.  This is then used as a label -->
+         <#assign itemValue = struts.getText(stack.findString(parameters.listLabelKey))/>
+     <#elseif parameters.listValue??>
 -        <#assign itemValue = stack.findString(parameters.listValue)?default("")/>
 +        <#assign itemValue = stack.findString(parameters.listValue)!""/>
-         <#else>
-             <#assign itemValue = stack.findString('top')/>
+     <#else>
+          <#assign itemValue = stack.findString('top')/>
      </#if>
      <#if parameters.listCssClass??>
          <#if stack.findString(parameters.listCssClass)??>

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/main/resources/template/simple/radiomap.ftl
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/main/resources/template/simple/select.ftl
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/checkboxlist.html
----------------------------------------------------------------------
diff --cc core/src/site/resources/tags/checkboxlist.html
index ac77ab7,1bcb2ea..5359aa9
--- a/core/src/site/resources/tags/checkboxlist.html
+++ b/core/src/site/resources/tags/checkboxlist.html
@@@ -1,440 -1,432 +1,456 @@@
 -<!--
 -This file is generated during the build by processing Component class annotations.
 -Please do not edit it directly.
 --->
 -<html>
 -    <head>
 -		<title>checkboxlist</title>
 -	</head>
 -
 -	<body>
 -		<h1>Tag Name: checkboxlist</h1>
 -		<h2>Description</h2>
 -		<p>
 -		<!-- START SNIPPET: tagdescription -->
 -		Render a list of checkboxes
 -		<!-- END SNIPPET: tagdescription -->
 -		</p>
 -
 -		<h2>Attributes</h2>
 -		<!-- START SNIPPET: tagattributes -->
 -		<table width="100%">
 -			<tr>
 -				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
 -			</tr>
 -			<tr>
 -				<td colspan="6">&nbsp;</td>
 -			</tr>
 -			<tr>
 -				<th align="left" valign="top"><h4>Name</h4></th>
 -				<th align="left" valign="top"><h4>Required</h4></th>
 -				<th align="left" valign="top"><h4>Default</h4></th>
 -				<th align="left" valign="top"><h4>Evaluated</h4></th>
 -				<th align="left" valign="top"><h4>Type</h4></th>
 -				<th align="left" valign="top"><h4>Description</h4></th>
 -			</tr>
 -				<tr>
 -					<td align="left" valign="top">accesskey</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">cssClass</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The css class to use for element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">cssErrorClass</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The css error class to use for element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">cssErrorStyle</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The css error style definitions for element to use</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">cssStyle</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The css style definitions for element to use</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">disabled</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">errorPosition</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">id</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">HTML id attribute</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">javascriptTooltip</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">Boolean</td>
 -					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">key</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">label</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">labelSeparator</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">:</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">String that will be appended to the label</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">labelposition</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Define label position of form element (top/left)</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">list</td>
 -					<td align="left" valign="top"><strong>true</strong></td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">listCssClass</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Property of list objects to get css class from</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">listCssStyle</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Property of list objects to get css style from</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">listKey</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top"> Property of list objects to get field value from</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">listLabelKey</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">listTitle</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Property of list objects to get title from</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">listValue</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Property of list objects to get field content from</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">listValueKey</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top"> Property of list objects to get field value label from</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">name</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The name to set for element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onblur</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onchange</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onclick</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">ondblclick</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onfocus</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onkeydown</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onkeypress</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onkeyup</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onmousedown</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onmousemove</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onmouseout</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onmouseover</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onmouseup</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">onselect</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">requiredLabel</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">Boolean</td>
 -					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">requiredPosition</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Define required position of required form element (left|right)</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">tabindex</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">template</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">templateDir</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The template directory.</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">theme</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">title</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">tooltip</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Set the tooltip of this particular component</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">tooltipConfig</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">tooltipCssClass</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">StrutsTTClassic</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">tooltipDelay</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">Classic</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">tooltipIconPath</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
 -				</tr>
 -				<tr>
 -					<td align="left" valign="top">value</td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top"></td>
 -					<td align="left" valign="top">false</td>
 -					<td align="left" valign="top">String</td>
 -					<td align="left" valign="top">Preset the value of input element.</td>
 -				</tr>
 -		</table>
 -		<!-- END SNIPPET: tagattributes -->
 -	</body>
 -</html>
 -
 +<!--
 +This file is generated during the build by processing Component class annotations.
 +Please do not edit it directly.
 +-->
 +<html>
 +    <head>
 +		<title>checkboxlist</title>
 +	</head>
 +
 +	<body>
 +		<h1>Tag Name: checkboxlist</h1>
 +		<h2>Description</h2>
 +		<p>
 +		<!-- START SNIPPET: tagdescription -->
 +		Render a list of checkboxes
 +		<!-- END SNIPPET: tagdescription -->
 +		</p>
 +
 +		<h2>Attributes</h2>
 +		<!-- START SNIPPET: tagattributes -->
 +		<table width="100%">
 +			<tr>
 +				<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>
 +			</tr>
 +			<tr>
 +				<td colspan="6">&nbsp;</td>
 +			</tr>
 +			<tr>
 +				<th align="left" valign="top"><h4>Name</h4></th>
 +				<th align="left" valign="top"><h4>Required</h4></th>
 +				<th align="left" valign="top"><h4>Default</h4></th>
 +				<th align="left" valign="top"><h4>Evaluated</h4></th>
 +				<th align="left" valign="top"><h4>Type</h4></th>
 +				<th align="left" valign="top"><h4>Description</h4></th>
 +			</tr>
 +				<tr>
 +					<td align="left" valign="top">accesskey</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">class</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">cssClass</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The css class to use for element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">cssErrorClass</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The css error class to use for element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">cssErrorStyle</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The css error style definitions for element to use</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">cssStyle</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The css style definitions for element to use</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">disabled</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">errorPosition</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Define error position of form element (top|bottom)</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">id</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">HTML id attribute</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">javascriptTooltip</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">Boolean</td>
 +					<td align="left" valign="top">Use JavaScript to generate tooltips</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">key</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">label</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Label expression used for rendering an element specific label</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">labelSeparator</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">:</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">String that will be appended to the label</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">labelposition</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Define label position of form element (top/left)</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">list</td>
 +					<td align="left" valign="top"><strong>true</strong></td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">listCssClass</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Property of list objects to get css class from</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">listCssStyle</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Property of list objects to get css style from</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">listKey</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top"> Property of list objects to get field value from</td>
 +				</tr>
 +				<tr>
++					<td align="left" valign="top">listLabelKey</td>
++					<td align="left" valign="top">false</td>
++					<td align="left" valign="top"></td>
++					<td align="left" valign="top">false</td>
++					<td align="left" valign="top">String</td>
++					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
++				</tr>
++				<tr>
 +					<td align="left" valign="top">listTitle</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Property of list objects to get title from</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">listValue</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Property of list objects to get field content from</td>
 +				</tr>
 +				<tr>
++					<td align="left" valign="top">listValueKey</td>
++					<td align="left" valign="top">false</td>
++					<td align="left" valign="top"></td>
++					<td align="left" valign="top">false</td>
++					<td align="left" valign="top">String</td>
++					<td align="left" valign="top"> Property of list objects to get field value label from</td>
++				</tr>
++				<tr>
 +					<td align="left" valign="top">name</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The name to set for element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onblur</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onchange</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onclick</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">ondblclick</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onfocus</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onkeydown</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onkeypress</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onkeyup</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onmousedown</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onmousemove</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onmouseout</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onmouseover</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onmouseup</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">onselect</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">readonly</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">Boolean</td>
 +					<td align="left" valign="top">Whether the input is readonly</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">requiredLabel</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">Boolean</td>
 +					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">requiredPosition</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Define required position of required form element (left|right)</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">style</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">tabindex</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">template</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">templateDir</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The template directory.</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">theme</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">title</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">tooltip</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Set the tooltip of this particular component</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">tooltipConfig</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">tooltipCssClass</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">StrutsTTClassic</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">tooltipDelay</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">Classic</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">tooltipIconPath</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
 +				</tr>
 +				<tr>
 +					<td align="left" valign="top">value</td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top"></td>
 +					<td align="left" valign="top">false</td>
 +					<td align="left" valign="top">String</td>
 +					<td align="left" valign="top">Preset the value of input element.</td>
 +				</tr>
 +		</table>
 +		<!-- END SNIPPET: tagattributes -->
 +	</body>
 +</html>
 +

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/doubleselect.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/inputtransferselect.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/optiontransferselect.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/radio.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/select.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/updownselect.html
----------------------------------------------------------------------


[12/17] git commit: Extends test to use the new attribute

Posted by lu...@apache.org.
Extends test to use the new attribute


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d67fce1f
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d67fce1f
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d67fce1f

Branch: refs/heads/develop
Commit: d67fce1f2577229139938d4588bb970c3f869078
Parents: ed8a0b8
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jun 27 12:56:01 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jun 27 12:56:01 2014 +0200

----------------------------------------------------------------------
 .../struts2/views/jsp/ui/OptGroupTest.java      | 41 ++++++++++++++++++++
 .../apache/struts2/views/jsp/ui/OptGroup-6.txt  | 40 +++++++++++++++++++
 2 files changed, 81 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/d67fce1f/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index c11f511..038cb6a 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -23,6 +23,7 @@ package org.apache.struts2.views.jsp.ui;
 
 import java.util.LinkedHashMap;
 
+import com.opensymphony.xwork2.Action;
 import org.apache.struts2.TestAction;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
 
@@ -190,4 +191,44 @@ public class OptGroupTest extends AbstractUITagTest {
         //System.out.println(writer.toString());
         verify(SelectTag.class.getResource("OptGroup-5.txt"));
     }
+
+    public void testOptGroupWithValueKey() throws Exception {
+        SelectTag selectTag = new SelectTag();
+        selectTag.setName("mySelection");
+        selectTag.setLabel("My Selection");
+        selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
+        selectTag.setListValueKey("valueKey");
+
+        stack.push(new Action() {
+            public String execute() throws Exception {
+                return SUCCESS;
+            }
+
+            public String getValueKey() { return "MyValue"; }
+        });
+
+        OptGroupTag optGroupTag1 = new OptGroupTag();
+        optGroupTag1.setLabel("My Label 1");
+        optGroupTag1.setList("%{#{'AAA':'aaa','BBB':'bbb','CCC':'ccc'}}");
+
+        OptGroupTag optGroupTag2 = new OptGroupTag();
+        optGroupTag2.setLabel("My Label 2");
+        optGroupTag2.setList("%{#{'DDD':'ddd','EEE':'eee','FFF':'fff'}}");
+
+        selectTag.setPageContext(pageContext);
+        selectTag.doStartTag();
+        optGroupTag1.setPageContext(pageContext);
+        optGroupTag1.doStartTag();
+        optGroupTag1.doEndTag();
+        optGroupTag2.setPageContext(pageContext);
+        optGroupTag2.doStartTag();
+        optGroupTag2.doEndTag();
+        selectTag.doEndTag();
+
+
+        //System.out.println(writer.toString());
+        verify(SelectTag.class.getResource("OptGroup-6.txt"));
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/d67fce1f/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
new file mode 100644
index 0000000..401ef44
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
@@ -0,0 +1,40 @@
+<tr>
+    <td class="tdLabel"><label for="mySelection" class="label">My Selection:</label></td>
+    <td>
+<select name="mySelection" id="mySelection">
+    <option value="ONE">MyValue</option>
+    <option value="TWO">MyValue</option>
+    <option value="THREE">MyValue</option>
+
+<optgroup 
+	label="My Label 1"
+>
+
+	<option value="AAA"
+	>aaa
+	</option>
+	<option value="BBB"
+	>bbb
+	</option>
+	<option value="CCC"
+	>ccc
+	</option>
+</optgroup>
+<optgroup 
+	label="My Label 2"
+>
+
+	<option value="DDD"
+	>ddd
+	</option>
+	<option value="EEE"
+	>eee
+	</option>
+	<option value="FFF"
+	>fff
+	</option>
+</optgroup>
+
+</select>
+</td>
+</tr>
\ No newline at end of file


[04/17] git commit: Adds autogenerated files

Posted by lu...@apache.org.
Adds autogenerated files


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/7e98fe7a
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/7e98fe7a
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/7e98fe7a

Branch: refs/heads/develop
Commit: 7e98fe7a731b44bb85375f9363465838803a0a16
Parents: 69df870
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 20 08:08:50 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 20 08:08:50 2014 +0100

----------------------------------------------------------------------
 core/src/site/resources/tags/checkboxlist.html         | 8 ++++++++
 core/src/site/resources/tags/doubleselect.html         | 8 ++++++++
 core/src/site/resources/tags/inputtransferselect.html  | 8 ++++++++
 core/src/site/resources/tags/optiontransferselect.html | 8 ++++++++
 core/src/site/resources/tags/radio.html                | 8 ++++++++
 core/src/site/resources/tags/select.html               | 8 ++++++++
 core/src/site/resources/tags/updownselect.html         | 8 ++++++++
 7 files changed, 56 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/checkboxlist.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/checkboxlist.html b/core/src/site/resources/tags/checkboxlist.html
index 0ad3225..95e2e97 100644
--- a/core/src/site/resources/tags/checkboxlist.html
+++ b/core/src/site/resources/tags/checkboxlist.html
@@ -170,6 +170,14 @@ Please do not edit it directly.
 					<td align="left" valign="top"> Property of list objects to get field value from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listLabelKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">listTitle</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/doubleselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/doubleselect.html b/core/src/site/resources/tags/doubleselect.html
index 00a1558..becaf8b 100644
--- a/core/src/site/resources/tags/doubleselect.html
+++ b/core/src/site/resources/tags/doubleselect.html
@@ -458,6 +458,14 @@ Please do not edit it directly.
 					<td align="left" valign="top"> Property of list objects to get field value from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listLabelKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">listTitle</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/inputtransferselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/inputtransferselect.html b/core/src/site/resources/tags/inputtransferselect.html
index 4c33f7c..9f1a1e1 100644
--- a/core/src/site/resources/tags/inputtransferselect.html
+++ b/core/src/site/resources/tags/inputtransferselect.html
@@ -242,6 +242,14 @@ Please do not edit it directly.
 					<td align="left" valign="top"> Property of list objects to get field value from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listLabelKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">listTitle</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/optiontransferselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/optiontransferselect.html b/core/src/site/resources/tags/optiontransferselect.html
index 5f9b3c7..e2d74d1 100644
--- a/core/src/site/resources/tags/optiontransferselect.html
+++ b/core/src/site/resources/tags/optiontransferselect.html
@@ -618,6 +618,14 @@ Please do not edit it directly.
 					<td align="left" valign="top"> Property of list objects to get field value from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listLabelKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">listTitle</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/radio.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/radio.html b/core/src/site/resources/tags/radio.html
index f3e8abc..ea1d78d 100644
--- a/core/src/site/resources/tags/radio.html
+++ b/core/src/site/resources/tags/radio.html
@@ -170,6 +170,14 @@ Please do not edit it directly.
 					<td align="left" valign="top"> Property of list objects to get field value from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listLabelKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">listTitle</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/select.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/select.html b/core/src/site/resources/tags/select.html
index e247c1f..7a7d3de 100644
--- a/core/src/site/resources/tags/select.html
+++ b/core/src/site/resources/tags/select.html
@@ -194,6 +194,14 @@ Please do not edit it directly.
 					<td align="left" valign="top"> Property of list objects to get field value from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listLabelKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">listTitle</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/updownselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/updownselect.html b/core/src/site/resources/tags/updownselect.html
index d0c02d5..f084116 100644
--- a/core/src/site/resources/tags/updownselect.html
+++ b/core/src/site/resources/tags/updownselect.html
@@ -218,6 +218,14 @@ Please do not edit it directly.
 					<td align="left" valign="top"> Property of list objects to get field value from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listLabelKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top">Property of list objects to be used to lookup for localised version of field label</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">listTitle</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>


[14/17] git commit: Extends test case to demonstrate possible usage of listValueKey

Posted by lu...@apache.org.
Extends test case to demonstrate possible usage of listValueKey


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8e6f198d
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8e6f198d
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8e6f198d

Branch: refs/heads/develop
Commit: 8e6f198d41c01aa4b34645f558b209190f72510b
Parents: d20c2f1
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Jul 30 09:08:34 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Jul 30 09:08:34 2014 +0200

----------------------------------------------------------------------
 .../views/jsp/ui/LocaleKeyValueTest.java        | 11 ++++++++++
 .../struts2/views/jsp/ui/LocaleTestAction.java  | 17 ++++++++++++++++
 .../struts2/views/jsp/ui/OptGroupTest.java      | 21 ++++++++------------
 .../apache/struts2/views/jsp/ui/OptGroup-6.txt  |  8 ++++----
 4 files changed, 40 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java
new file mode 100644
index 0000000..5ea01a7
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java
@@ -0,0 +1,11 @@
+package org.apache.struts2.views.jsp.ui;
+
+public enum LocaleKeyValueTest {
+
+    ONE, TWO, THREE;
+    
+    public String getValueKey() {
+        return getClass().getSimpleName() + "." + name();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java
new file mode 100644
index 0000000..ad2a4b5
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java
@@ -0,0 +1,17 @@
+package org.apache.struts2.views.jsp.ui;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.struts2.TestAction;
+
+import com.opensymphony.xwork2.Action;
+
+public class LocaleTestAction extends TestAction implements Action {
+
+    @SuppressWarnings("unused")
+    public List<LocaleKeyValueTest> getSelectValues() {
+        return Arrays.asList(LocaleKeyValueTest.values());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index 038cb6a..de9d34b 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -23,13 +23,9 @@ package org.apache.struts2.views.jsp.ui;
 
 import java.util.LinkedHashMap;
 
-import com.opensymphony.xwork2.Action;
 import org.apache.struts2.TestAction;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
 
-/**
- *
- */
 public class OptGroupTest extends AbstractUITagTest {
 
     public void testOptGroupSimple() throws Exception {
@@ -129,7 +125,7 @@ public class OptGroupTest extends AbstractUITagTest {
     	
     	((TestAction)action).setMap(new LinkedHashMap() {{
     		put("AAA", "aaa");
-    		put(new Long(111111), "bbb");
+    		put(111111L, "bbb");
     		put("CCC", "ccc");
     	}});
     	
@@ -192,20 +188,19 @@ public class OptGroupTest extends AbstractUITagTest {
         verify(SelectTag.class.getResource("OptGroup-5.txt"));
     }
 
+
     public void testOptGroupWithValueKey() throws Exception {
         SelectTag selectTag = new SelectTag();
         selectTag.setName("mySelection");
         selectTag.setLabel("My Selection");
-        selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
+        selectTag.setList("selectValues");
         selectTag.setListValueKey("valueKey");
 
-        stack.push(new Action() {
-            public String execute() throws Exception {
-                return SUCCESS;
-            }
-
-            public String getValueKey() { return "MyValue"; }
-        });
+        LocaleTestAction localeTestAction = new LocaleTestAction();
+        
+        localeTestAction.setText("LocaleKeyValueTest.ONE","Edno");
+        localeTestAction.setText("LocaleKeyValueTest.TWO","Dve");
+        stack.push(localeTestAction);
 
         OptGroupTag optGroupTag1 = new OptGroupTag();
         optGroupTag1.setLabel("My Label 1");

http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
index 401ef44..99ed297 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
@@ -2,9 +2,9 @@
     <td class="tdLabel"><label for="mySelection" class="label">My Selection:</label></td>
     <td>
 <select name="mySelection" id="mySelection">
-    <option value="ONE">MyValue</option>
-    <option value="TWO">MyValue</option>
-    <option value="THREE">MyValue</option>
+    <option value="ONE">Edno</option>
+    <option value="TWO">Dve</option>
+    <option value="THREE">LocaleKeyValueTest.THREE</option>
 
 <optgroup 
 	label="My Label 1"
@@ -37,4 +37,4 @@
 
 </select>
 </td>
-</tr>
\ No newline at end of file
+</tr>


[08/17] git commit: Adds auto-generated tags' info

Posted by lu...@apache.org.
Adds auto-generated tags' info


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ca230ab3
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ca230ab3
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ca230ab3

Branch: refs/heads/develop
Commit: ca230ab30fde249d8af17cc5f2ba83ebe142d364
Parents: 23498a3
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jun 27 12:54:26 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jun 27 12:54:26 2014 +0200

----------------------------------------------------------------------
 core/src/site/resources/tags/checkboxlist.html         | 8 ++++++++
 core/src/site/resources/tags/doubleselect.html         | 8 ++++++++
 core/src/site/resources/tags/inputtransferselect.html  | 8 ++++++++
 core/src/site/resources/tags/optiontransferselect.html | 8 ++++++++
 core/src/site/resources/tags/radio.html                | 8 ++++++++
 core/src/site/resources/tags/select.html               | 8 ++++++++
 core/src/site/resources/tags/updownselect.html         | 8 ++++++++
 7 files changed, 56 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/checkboxlist.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/checkboxlist.html b/core/src/site/resources/tags/checkboxlist.html
index 95e2e97..1bcb2ea 100644
--- a/core/src/site/resources/tags/checkboxlist.html
+++ b/core/src/site/resources/tags/checkboxlist.html
@@ -194,6 +194,14 @@ Please do not edit it directly.
 					<td align="left" valign="top">Property of list objects to get field content from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listValueKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top"> Property of list objects to get field value label from</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">name</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/doubleselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/doubleselect.html b/core/src/site/resources/tags/doubleselect.html
index becaf8b..674ecc2 100644
--- a/core/src/site/resources/tags/doubleselect.html
+++ b/core/src/site/resources/tags/doubleselect.html
@@ -482,6 +482,14 @@ Please do not edit it directly.
 					<td align="left" valign="top">Property of list objects to get field content from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listValueKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top"> Property of list objects to get field value label from</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">multiple</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/inputtransferselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/inputtransferselect.html b/core/src/site/resources/tags/inputtransferselect.html
index 9f1a1e1..176e915 100644
--- a/core/src/site/resources/tags/inputtransferselect.html
+++ b/core/src/site/resources/tags/inputtransferselect.html
@@ -266,6 +266,14 @@ Please do not edit it directly.
 					<td align="left" valign="top">Property of list objects to get field content from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listValueKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top"> Property of list objects to get field value label from</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">multiple</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/optiontransferselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/optiontransferselect.html b/core/src/site/resources/tags/optiontransferselect.html
index e2d74d1..a2f5422 100644
--- a/core/src/site/resources/tags/optiontransferselect.html
+++ b/core/src/site/resources/tags/optiontransferselect.html
@@ -642,6 +642,14 @@ Please do not edit it directly.
 					<td align="left" valign="top">Property of list objects to get field content from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listValueKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top"> Property of list objects to get field value label from</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">multiple</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/radio.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/radio.html b/core/src/site/resources/tags/radio.html
index ea1d78d..1fce828 100644
--- a/core/src/site/resources/tags/radio.html
+++ b/core/src/site/resources/tags/radio.html
@@ -194,6 +194,14 @@ Please do not edit it directly.
 					<td align="left" valign="top">Property of list objects to get field content from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listValueKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top"> Property of list objects to get field value label from</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">name</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/select.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/select.html b/core/src/site/resources/tags/select.html
index 7a7d3de..d2425e5 100644
--- a/core/src/site/resources/tags/select.html
+++ b/core/src/site/resources/tags/select.html
@@ -218,6 +218,14 @@ Please do not edit it directly.
 					<td align="left" valign="top">Property of list objects to get field content from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listValueKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top"> Property of list objects to get field value label from</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">multiple</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top">false</td>

http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/updownselect.html
----------------------------------------------------------------------
diff --git a/core/src/site/resources/tags/updownselect.html b/core/src/site/resources/tags/updownselect.html
index f084116..d62b86f 100644
--- a/core/src/site/resources/tags/updownselect.html
+++ b/core/src/site/resources/tags/updownselect.html
@@ -242,6 +242,14 @@ Please do not edit it directly.
 					<td align="left" valign="top">Property of list objects to get field content from</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">listValueKey</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top"></td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">String</td>
+					<td align="left" valign="top"> Property of list objects to get field value label from</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">moveDownLabel</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top">v</td>


[05/17] git commit: Extends blank app to demonstrate the new possibilities

Posted by lu...@apache.org.
Extends blank app to demonstrate the new possibilities


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/b78349ad
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/b78349ad
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/b78349ad

Branch: refs/heads/develop
Commit: b78349ad5dade8a47fb335f6ef18c13a36101842
Parents: 7e98fe7
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 20 08:12:13 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 20 08:12:13 2014 +0100

----------------------------------------------------------------------
 apps/blank/src/main/java/example/HelloWorld.java              | 7 +++++++
 apps/blank/src/main/java/example/YesNo.java                   | 5 +++++
 apps/blank/src/main/resources/example/package.properties      | 2 ++
 apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp | 2 ++
 4 files changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/java/example/HelloWorld.java
----------------------------------------------------------------------
diff --git a/apps/blank/src/main/java/example/HelloWorld.java b/apps/blank/src/main/java/example/HelloWorld.java
index d5268ca..73a5221 100644
--- a/apps/blank/src/main/java/example/HelloWorld.java
+++ b/apps/blank/src/main/java/example/HelloWorld.java
@@ -21,6 +21,9 @@
 
 package example;
 
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * <code>Set welcome message.</code>
  */
@@ -58,4 +61,8 @@ public class HelloWorld extends ExampleSupport {
     public void setMessage(String message) {
         this.message = message;
     }
+
+    public List<YesNo> getValues() {
+        return Arrays.asList(YesNo.values());
+    }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/java/example/YesNo.java
----------------------------------------------------------------------
diff --git a/apps/blank/src/main/java/example/YesNo.java b/apps/blank/src/main/java/example/YesNo.java
new file mode 100644
index 0000000..d27ed7c
--- /dev/null
+++ b/apps/blank/src/main/java/example/YesNo.java
@@ -0,0 +1,5 @@
+package example;
+
+public enum YesNo {
+    YES, NO
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/resources/example/package.properties
----------------------------------------------------------------------
diff --git a/apps/blank/src/main/resources/example/package.properties b/apps/blank/src/main/resources/example/package.properties
index c1f4b33..1ac0e71 100644
--- a/apps/blank/src/main/resources/example/package.properties
+++ b/apps/blank/src/main/resources/example/package.properties
@@ -3,3 +3,5 @@ requiredstring = ${getText(fieldName)} is required.
 password = Password
 username = User Name
 Missing.message =  This feature is under construction. Please try again in the next interation.
+test-yes=Yo
+test-no=Nein

http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
----------------------------------------------------------------------
diff --git a/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp b/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
index 938c761..f10fc02 100644
--- a/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
+++ b/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
@@ -24,5 +24,7 @@
     </li>
 </ul>
 
+<s:checkboxlist name="test" list="values" listLabelKey="'test-' + name().toLowerCase()" />
+
 </body>
 </html>


[10/17] git commit: Removes optional valueKey to keep backward compatibility

Posted by lu...@apache.org.
Removes optional valueKey to keep backward compatibility


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/a2791a83
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/a2791a83
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/a2791a83

Branch: refs/heads/develop
Commit: a2791a8305666859d6484098fb597f93c94908bc
Parents: 13269fa
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jun 27 12:55:13 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jun 27 12:55:13 2014 +0200

----------------------------------------------------------------------
 core/src/main/java/org/apache/struts2/components/ListUIBean.java | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/a2791a83/core/src/main/java/org/apache/struts2/components/ListUIBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ListUIBean.java b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
index c9f704a..1adfc2e 100644
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@ -113,8 +113,6 @@ public abstract class ListUIBean extends UIBean {
         if (listValueKey != null) {
             listValueKey = stripExpressionIfAltSyntax(listValueKey);
             addParameter("listValueKey", listValueKey);
-        } else if (value instanceof Map) {
-            addParameter("listValueKey", "valueKey");
         }
 
         if (listValue != null) {


[17/17] git commit: Closes #7 Closes #18

Posted by lu...@apache.org.
Closes #7
Closes #18


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/09012d7e
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/09012d7e
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/09012d7e

Branch: refs/heads/develop
Commit: 09012d7e5f7177002893da3b2add091b04c62657
Parents: 3b25242
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Jul 30 09:16:01 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Jul 30 09:16:01 2014 +0200

----------------------------------------------------------------------
 .../test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java    | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/09012d7e/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index de9d34b..bee7ade 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -188,7 +188,6 @@ public class OptGroupTest extends AbstractUITagTest {
         verify(SelectTag.class.getResource("OptGroup-5.txt"));
     }
 
-
     public void testOptGroupWithValueKey() throws Exception {
         SelectTag selectTag = new SelectTag();
         selectTag.setName("mySelection");
@@ -225,5 +224,4 @@ public class OptGroupTest extends AbstractUITagTest {
         verify(SelectTag.class.getResource("OptGroup-6.txt"));
     }
 
-
 }


[06/17] git commit: updating ListUIBean

Posted by lu...@apache.org.
updating ListUIBean

updating java-backed bean


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/6def5145
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/6def5145
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/6def5145

Branch: refs/heads/develop
Commit: 6def514524e81c4af188b47b6694384eea3a46c6
Parents: 7f586d3
Author: adam brin <ad...@asu.edu>
Authored: Mon Mar 24 07:31:54 2014 -0700
Committer: adam brin <ad...@asu.edu>
Committed: Mon Mar 24 07:31:54 2014 -0700

----------------------------------------------------------------------
 .../java/org/apache/struts2/components/ListUIBean.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/6def5145/core/src/main/java/org/apache/struts2/components/ListUIBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ListUIBean.java b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
index b1a4493..69deae4 100644
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@ -48,6 +48,7 @@ import java.util.Map;
 public abstract class ListUIBean extends UIBean {
     protected Object list;
     protected String listKey;
+    protected String listValueKey;
     protected String listValue;
     protected String listCssClass;
     protected String listCssStyle;
@@ -108,6 +109,13 @@ public abstract class ListUIBean extends UIBean {
             addParameter("listKey", "key");
         }
 
+        if (listValueKey != null) {
+            listValueKey = stripExpressionIfAltSyntax(listValueKey);
+            addParameter("listValueKey", listValueKey);
+        } else if (value instanceof Map) {
+            addParameter("listValueKey", "valueKey");
+        }
+
         if (listValue != null) {
             listValue = stripExpressionIfAltSyntax(listValue);
             addParameter("listValue", listValue);
@@ -147,6 +155,11 @@ public abstract class ListUIBean extends UIBean {
         this.listKey = listKey;
     }
 
+    @StrutsTagAttribute(description = " Property of list objects to get field value label from")
+    public void setListValueKey(String listValueKey) {
+        this.listValueKey = listValueKey;
+    }
+
     @StrutsTagAttribute(description = "Property of list objects to get field content from")
     public void setListValue(String listValue) {
         this.listValue = listValue;


[11/17] git commit: Checks is ListValueKey was defined and returns value

Posted by lu...@apache.org.
Checks is ListValueKey was defined and returns value


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ed8a0b87
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ed8a0b87
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ed8a0b87

Branch: refs/heads/develop
Commit: ed8a0b87b29114ac5c99838e7d4cfc819ad71e43
Parents: a2791a8
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jun 27 12:55:43 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jun 27 12:55:43 2014 +0200

----------------------------------------------------------------------
 core/src/main/resources/template/simple/select.ftl | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/ed8a0b87/core/src/main/resources/template/simple/select.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/select.ftl b/core/src/main/resources/template/simple/select.ftl
index f4f27bf..dcb4b97 100644
--- a/core/src/main/resources/template/simple/select.ftl
+++ b/core/src/main/resources/template/simple/select.ftl
@@ -72,9 +72,12 @@
         <#if parameters.listValueKey??>
           <#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale file for it's 
              localized value.  This is then used as a label -->
-          <#assign itemValue = stack.findString(parameters.listValueKey)/>
-          <#-- FIXME: find a better way to get the value than a call to @s.text -->
-          <#assign itemValue><@s.text name="${itemValue}"/></#assign>
+          <#assign valueKey = stack.findString(parameters.listValueKey) />
+          <#if valueKey??>
+              <#assign itemValue = struts.getText(valueKey) />
+          <#else>
+              <#assign itemValue = parameters.listValueKey />
+          </#if>
         <#elseif parameters.listValue??>
             <#if stack.findString(parameters.listValue)??>
               <#assign itemValue = stack.findString(parameters.listValue)/>


[15/17] git commit: Extends test case to demonstrate possible usage of listValueKey

Posted by lu...@apache.org.
Extends test case to demonstrate possible usage of listValueKey


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8e6f198d
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8e6f198d
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8e6f198d

Branch: refs/heads/feature/WW-4295-localization
Commit: 8e6f198d41c01aa4b34645f558b209190f72510b
Parents: d20c2f1
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Jul 30 09:08:34 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Jul 30 09:08:34 2014 +0200

----------------------------------------------------------------------
 .../views/jsp/ui/LocaleKeyValueTest.java        | 11 ++++++++++
 .../struts2/views/jsp/ui/LocaleTestAction.java  | 17 ++++++++++++++++
 .../struts2/views/jsp/ui/OptGroupTest.java      | 21 ++++++++------------
 .../apache/struts2/views/jsp/ui/OptGroup-6.txt  |  8 ++++----
 4 files changed, 40 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java
new file mode 100644
index 0000000..5ea01a7
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleKeyValueTest.java
@@ -0,0 +1,11 @@
+package org.apache.struts2.views.jsp.ui;
+
+public enum LocaleKeyValueTest {
+
+    ONE, TWO, THREE;
+    
+    public String getValueKey() {
+        return getClass().getSimpleName() + "." + name();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java
new file mode 100644
index 0000000..ad2a4b5
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/LocaleTestAction.java
@@ -0,0 +1,17 @@
+package org.apache.struts2.views.jsp.ui;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.struts2.TestAction;
+
+import com.opensymphony.xwork2.Action;
+
+public class LocaleTestAction extends TestAction implements Action {
+
+    @SuppressWarnings("unused")
+    public List<LocaleKeyValueTest> getSelectValues() {
+        return Arrays.asList(LocaleKeyValueTest.values());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index 038cb6a..de9d34b 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -23,13 +23,9 @@ package org.apache.struts2.views.jsp.ui;
 
 import java.util.LinkedHashMap;
 
-import com.opensymphony.xwork2.Action;
 import org.apache.struts2.TestAction;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
 
-/**
- *
- */
 public class OptGroupTest extends AbstractUITagTest {
 
     public void testOptGroupSimple() throws Exception {
@@ -129,7 +125,7 @@ public class OptGroupTest extends AbstractUITagTest {
     	
     	((TestAction)action).setMap(new LinkedHashMap() {{
     		put("AAA", "aaa");
-    		put(new Long(111111), "bbb");
+    		put(111111L, "bbb");
     		put("CCC", "ccc");
     	}});
     	
@@ -192,20 +188,19 @@ public class OptGroupTest extends AbstractUITagTest {
         verify(SelectTag.class.getResource("OptGroup-5.txt"));
     }
 
+
     public void testOptGroupWithValueKey() throws Exception {
         SelectTag selectTag = new SelectTag();
         selectTag.setName("mySelection");
         selectTag.setLabel("My Selection");
-        selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
+        selectTag.setList("selectValues");
         selectTag.setListValueKey("valueKey");
 
-        stack.push(new Action() {
-            public String execute() throws Exception {
-                return SUCCESS;
-            }
-
-            public String getValueKey() { return "MyValue"; }
-        });
+        LocaleTestAction localeTestAction = new LocaleTestAction();
+        
+        localeTestAction.setText("LocaleKeyValueTest.ONE","Edno");
+        localeTestAction.setText("LocaleKeyValueTest.TWO","Dve");
+        stack.push(localeTestAction);
 
         OptGroupTag optGroupTag1 = new OptGroupTag();
         optGroupTag1.setLabel("My Label 1");

http://git-wip-us.apache.org/repos/asf/struts/blob/8e6f198d/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
index 401ef44..99ed297 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
@@ -2,9 +2,9 @@
     <td class="tdLabel"><label for="mySelection" class="label">My Selection:</label></td>
     <td>
 <select name="mySelection" id="mySelection">
-    <option value="ONE">MyValue</option>
-    <option value="TWO">MyValue</option>
-    <option value="THREE">MyValue</option>
+    <option value="ONE">Edno</option>
+    <option value="TWO">Dve</option>
+    <option value="THREE">LocaleKeyValueTest.THREE</option>
 
 <optgroup 
 	label="My Label 1"
@@ -37,4 +37,4 @@
 
 </select>
 </td>
-</tr>
\ No newline at end of file
+</tr>


[03/17] git commit: Extends template to use the new field to localise value's label

Posted by lu...@apache.org.
Extends template to use the new field to localise value's label


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/69df8704
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/69df8704
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/69df8704

Branch: refs/heads/develop
Commit: 69df87047ab2a72c339a0ee320459757ba439f40
Parents: 9018936
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 20 08:08:27 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 20 08:08:27 2014 +0100

----------------------------------------------------------------------
 core/src/main/resources/template/simple/checkboxlist.ftl | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/69df8704/core/src/main/resources/template/simple/checkboxlist.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/checkboxlist.ftl b/core/src/main/resources/template/simple/checkboxlist.ftl
index 9662e42..e2e569c 100644
--- a/core/src/main/resources/template/simple/checkboxlist.ftl
+++ b/core/src/main/resources/template/simple/checkboxlist.ftl
@@ -29,16 +29,14 @@
         <#else>
             <#assign itemKey = stack.findValue('top')/>
     </#if>
-  <#if parameters.listValueKey??>
+    <#if parameters.listLabelKey??>
     <#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale 
        file for it's localized value.  This is then used as a label -->
-    <#assign itemValue = stack.findString(parameters.listValueKey)/>
-    <#-- FIXME: find a better way to get the value than a call to @s.text -->
-    <#assign itemValue><@s.text name="${itemValue}"/></#assign>
+        <#assign itemValue = struts.getText(stack.findString(parameters.listLabelKey))/>
     <#elseif parameters.listValue??>
         <#assign itemValue = stack.findString(parameters.listValue)?default("")/>
-        <#else>
-            <#assign itemValue = stack.findString('top')/>
+    <#else>
+         <#assign itemValue = stack.findString('top')/>
     </#if>
     <#if parameters.listCssClass??>
         <#if stack.findString(parameters.listCssClass)??>