Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Provide a Custom Result Type

actionstruts.xml

Code Block
xml
xml
<xwork><struts>

    ...
    <result-types>
        <result-type name="myBytesResult" class="MyBytesResult" />
    </result-types>
    ...
    <action name="myAction" class="MyAction">
        <result name="myImageResult" type="myBytesResult">
            <param name="contentType">${myContentType}</param>
            <param name="contentDisposition">${myContentDisposition}</param>
            <param name="contentLength">${myContentLength}</param>
            <param name="bufferSize">${myBufferSize}</param>
        <result>
    </action>
    ...

</xwork>struts>

MyBytesResult.java

Code Block
java
java
public class MyBytesResult implements Result {

	public void execute(ActionInvocation invocation) throws Exception {

		MyAction action = (MyAction) invocation.getAction();
		HttpServletResponse response = ServletActionContext.getResponse();

                response.setContentType(action.getContentType());
		response.setContentLength(action.getContentLength());

		response.getOutputStream().write(action.getImageInBytes());
		response.getOutputStream().flush();
	}

}