You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by rg...@apache.org on 2007/02/20 23:35:32 UTC
svn commit: r509780 - in /struts/struts2/trunk/core/src:
main/java/org/apache/struts2/util/ main/resources/template/simple/
test/java/org/apache/struts2/views/jsp/ui/
test/resources/org/apache/struts2/views/jsp/ui/
Author: rgielen
Date: Tue Feb 20 14:35:31 2007
New Revision: 509780
URL: http://svn.apache.org/viewvc?view=rev&rev=509780
Log:
WW-1747 / WW-1711:
Working with real types rather than String representations as long as possible should fix both issues with select tag.
Additional test added and verified.
Added:
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/ContainUtil.java
struts/struts2/trunk/core/src/main/resources/template/simple/select.ftl
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/ContainUtil.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/ContainUtil.java?view=diff&rev=509780&r1=509779&r2=509780
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/ContainUtil.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/ContainUtil.java Tue Feb 20 14:35:31 2007
@@ -80,7 +80,7 @@
return true;
}
} else if (obj1 instanceof Collection) {
- if (((Collection) obj1).contains(obj2)) {
+ if (((Collection) obj1).contains(obj2) || ((Collection) obj1).contains(obj2.toString())) {
//log.debug("obj1 is a collection and contains obj2");
return true;
}
Modified: struts/struts2/trunk/core/src/main/resources/template/simple/select.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/template/simple/select.ftl?view=diff&rev=509780&r1=509779&r2=509780
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/template/simple/select.ftl (original)
+++ struts/struts2/trunk/core/src/main/resources/template/simple/select.ftl Tue Feb 20 14:35:31 2007
@@ -39,13 +39,13 @@
</#if>
<@s.iterator value="parameters.list">
<#if parameters.listKey?exists>
- <#if stack.findString(parameters.listKey)?exists>
- <#assign itemKey = stack.findString(parameters.listKey).toString()/>
+ <#if stack.findValue(parameters.listKey)?exists>
+ <#assign itemKey = stack.findValue(parameters.listKey)/>
<#else>
<#assign itemKey = ''/>
</#if>
<#else>
- <#assign itemKey = stack.findValue('top').toString()/>
+ <#assign itemKey = stack.findValue('top')/>
</#if>
<#if parameters.listValue?exists>
<#if stack.findString(parameters.listValue)?exists>
@@ -57,7 +57,7 @@
<#assign itemValue = stack.findString('top')/>
</#if>
<option value="${itemKey?html}"<#rt/>
- <#if tag.contains(parameters.nameValue, itemKey) == true || (parameters.nameValue?exists && parameters.nameValue?string == itemKey)>
+ <#if tag.contains(parameters.nameValue, itemKey) == true || (parameters.nameValue?exists && parameters.nameValue?string == itemKey?string)>
selected="selected"<#rt/>
</#if>
>${itemValue?html}</option><#lt/>
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java?view=diff&rev=509780&r1=509779&r2=509780
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java Tue Feb 20 14:35:31 2007
@@ -170,6 +170,33 @@
}
}
+ public class LongObject {
+ private Long id;
+ private String value;
+
+
+ public LongObject(Long id, String value) {
+ this.id = id;
+ this.value = value;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+
public void testNullList() throws Exception {
TestAction testAction = (TestAction) action;
testAction.setList2(null);
@@ -237,6 +264,44 @@
tag.doEndTag();
verify(SelectTag.class.getResource("Select-2.txt"));
+ }
+
+ /**
+ * WW-1747 - should be a valid test case for the described issue
+ * @throws Exception
+ */
+ public void testMultipleWithLists() throws Exception {
+ TestAction testAction = (TestAction) action;
+ Collection collection = new ArrayList(2);
+
+ collection.add(1l);
+ collection.add(3l);
+ testAction.setCollection(collection);
+
+ List selectList = new ArrayList();
+ selectList.add(new LongObject(1l, "foo"));
+ selectList.add(new LongObject(2l, "bar"));
+ selectList.add(new LongObject(3l, "foobar"));
+ testAction.setList2(selectList);
+
+ SelectTag tag = new SelectTag();
+ tag.setPageContext(pageContext);
+ tag.setLabel("mylabel");
+ tag.setName("collection");
+ tag.setList("list2");
+ tag.setListKey("id");
+ tag.setListValue("value");
+ tag.setMultiple("true");
+ tag.setOnmousedown("alert('onmousedown');");
+ tag.setOnmousemove("alert('onmousemove');");
+ tag.setOnmouseout("alert('onmouseout');");
+ tag.setOnmouseover("alert('onmouseover');");
+ tag.setOnmouseup("alert('onmouseup');");
+
+ tag.doStartTag();
+ tag.doEndTag();
+
+ verify(SelectTag.class.getResource("Select-12.txt"));
}
public void testSimple() throws Exception {
Added: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt?view=auto&rev=509780
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt (added)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt Tue Feb 20 14:35:31 2007
@@ -0,0 +1,8 @@
+<tr>
+ <td class="tdLabel"><label for="collection" class="label">mylabel:</label></td>
+ <td><select name="collection" id="collection" multiple="multiple" onmousedown="alert('onmousedown');" onmouseup="alert('onmouseup');" onmouseover="alert('onmouseover');" onmousemove="alert('onmousemove');" onmouseout="alert('onmouseout');">
+ <option value="1" selected="selected">foo</option>
+ <option value="2">bar</option>
+ <option value="3" selected="selected">foobar</option>
+</select></td>
+</tr>