You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2007/07/07 17:43:52 UTC

svn commit: r554223 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/IteratorComponent.java test/java/org/apache/struts2/views/jsp/IteratorTagTest.java

Author: musachy
Date: Sat Jul  7 08:43:51 2007
New Revision: 554223

URL: http://svn.apache.org/viewvc?view=rev&rev=554223
Log:
WW-2024 Iterator tag does associate a value with the name specified on the "id" property when the value is null

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java?view=diff&rev=554223&r1=554222&r2=554223
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/IteratorComponent.java Sat Jul  7 08:43:51 2007
@@ -248,7 +248,7 @@
 
             String id = getId();
 
-            if ((id != null) && (currentValue != null)) {
+            if (id != null) {
                 //pageContext.setAttribute(id, currentValue);
                 //pageContext.setAttribute(id, currentValue, PageContext.REQUEST_SCOPE);
                 stack.getContext().put(id, currentValue);

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java?view=diff&rev=554223&r1=554222&r2=554223
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/IteratorTagTest.java Sat Jul  7 08:43:51 2007
@@ -101,6 +101,49 @@
         result = tag.doEndTag();
         assertEquals(result, TagSupport.EVAL_PAGE);
     }
+    
+    public void testIteratingWithIdSpecifiedAndNullElementOnCollection() throws Exception {
+        List list = new ArrayList();
+        list.add("one");
+        list.add(null);
+        list.add("three");
+
+        Foo foo = new Foo();
+        foo.setList(list);
+
+        stack.push(foo);
+
+        tag.setValue("list");
+        tag.setId("myId");
+
+        // one
+        int result = tag.doStartTag();
+        assertEquals(result, TagSupport.EVAL_BODY_INCLUDE);
+        assertEquals(stack.peek(), "one");
+        assertEquals(stack.getContext().get("myId"), "one");
+
+
+        tag.doInitBody();
+
+        // two
+        result = tag.doAfterBody();
+        assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
+        assertNull(stack.peek());
+        assertNull(stack.getContext().get("myId"));
+
+
+        // three
+        result = tag.doAfterBody();
+        assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
+        assertEquals(stack.peek(), "three");
+        assertEquals(stack.getContext().get("myId"), "three");
+
+        result = tag.doAfterBody();
+        assertEquals(result, TagSupport.SKIP_BODY);
+
+        result = tag.doEndTag();
+        assertEquals(result, TagSupport.EVAL_PAGE);
+    }
 
 
     public void testArrayIterator() {