Author: lukaszlenart
Date: Thu May 23 11:49:47 2013
New Revision: 1485653

URL: http://svn.apache.org/r1485653
Log:
WW-3999 Allows set respond code

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
    
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java?rev=1485653&r1=1485652&r2=1485653&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
 Thu May 23 11:49:47 2013
@@ -238,6 +238,9 @@ public class XSLTResult implements Resul
     /** Indicates the ognl expression respresenting the bean which is to be 
exposed as xml. */
     private String exposedValue;
 
+    /** Indicates the status to return in the response */
+    private int status = 200;
+
     private boolean parse;
     private AdapterFactory adapterFactory;
 
@@ -307,6 +310,18 @@ public class XSLTResult implements Resul
         this.excludingPattern = excludingPattern;
     }
 
+    public String getStatus() {
+        return String.valueOf(status);
+    }
+
+    public void setStatus(String status) {
+        try {
+            this.status = Integer.valueOf(status);
+        } catch (NumberFormatException e) {
+            throw new IllegalArgumentException("Status value not number " + 
e.getMessage(), e);
+        }
+    }
+
     /**
      * If true, parse the stylesheet location for OGNL expressions.
      *
@@ -328,7 +343,7 @@ public class XSLTResult implements Resul
 
         try {
             HttpServletResponse response = ServletActionContext.getResponse();
-
+            response.setStatus(status);
             PrintWriter writer = response.getWriter();
 
             // Create a transformer for the stylesheet.

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java?rev=1485653&r1=1485652&r2=1485653&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
 Thu May 23 11:49:47 2013
@@ -191,7 +191,20 @@ public class XSLTResultTest extends Stru
             assertEquals("Error transforming result", ex.getMessage());
         }
     }
-    
+
+    public void testStatusCode() throws Exception {
+        result.setParse(false);
+        result.setLocation("XSLTResultTest.xsl");
+        result.setStatus("302");
+        result.execute(mai);
+
+        String out = response.getContentAsString();
+
+        assertEquals(302, response.getStatus());
+        assertTrue(out.startsWith("<?xml version=\"1.0\" 
encoding=\"UTF-8\"?>"));
+        assertTrue(out.indexOf("<result 
xmlns=\"http://www.w3.org/TR/xhtml1/strict\"";) > -1);
+    }
+
     protected void setUp() throws Exception {
         super.setUp();
         request = new MockHttpServletRequest();


Reply via email to