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();