Author: husted Date: Thu Jan 24 03:09:59 2008 New Revision: 614842 URL: http://svn.apache.org/viewvc?rev=614842&view=rev Log: WW-2171 "Label tag does not use key attribute to lookup value in resources when using simple theme" Apply patch provided by Maja S Bratseth.
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestAction.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java?rev=614842&r1=614841&r2=614842&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java Thu Jan 24 03:09:59 2008 @@ -78,15 +78,17 @@ addParameter("for", findString(forAttr)); } - // try value first, then name (this overrides the default behavior in the superclass) + // try value, then key, then name (this overrides the default behavior in the superclass) if (value != null) { addParameter("nameValue", findString(value)); + } else if (key != null) { + String expr = "%{getText('"+ key +"')}"; + addParameter("nameValue", findString(expr)); } else if (name != null) { String expr = name; if (altSyntax()) { expr = "%{" + expr + "}"; } - addParameter("nameValue", findString(expr)); } } Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestAction.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestAction.java?rev=614842&r1=614841&r2=614842&view=diff ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestAction.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestAction.java Thu Jan 24 03:09:59 2008 @@ -20,10 +20,7 @@ */ package org.apache.struts2; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.struts2.views.jsp.ui.User; @@ -49,6 +46,19 @@ private List list2; private List list3; private SomeEnum status = SomeEnum.COMPLETED; + + private final Map texts = new HashMap(); + + public void setText(String key, String value) { + this.texts.put(key, value); + } + + public String getText(String key) { + if (this.texts.containsKey(key)) { + return (String) this.texts.get(key); + } + return super.getText(key); + } public Collection getCollection() { return collection; Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java?rev=614842&r1=614841&r2=614842&view=diff ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java Thu Jan 24 03:09:59 2008 @@ -108,4 +108,26 @@ LabelTag tag = new LabelTag(); verifyGenericProperties(tag, "xhtml", null); } + + public void testWithKey() throws Exception { + TestAction testAction = (TestAction) action; + final String key = "labelKey"; + final String value = "baz"; + testAction.setText(key, value); + + testAction.setFoo("notToBeOutput"); + + LabelTag tag = new LabelTag(); + tag.setPageContext(pageContext); + tag.setLabel("mylabel"); + tag.setFor("for"); + tag.setName("foo"); + tag.setKey(key); + + tag.doStartTag(); + tag.doEndTag(); + + verify(LabelTest.class.getResource("Label-2.txt")); + } + }