가장 사용이 많은 경우는 두가지 구문으로 분할된다. 첫번째, application's 상태를 변경하거나 query한다. 그리고 application의 view를 갱신하여 표현하기를 필요로한다. Action class는 application의 상태를 관리하고, Result type은 view를 관리한다.
미리 정의된 Result Types
framework은 자신의 application을 개발할 준비가 된 com.opensymphony.xwork2.Result interface의 몇몇 implementation들을 제공한다.
Chain Result | Action Chaining을 위해 사용된다. |
Dispatcher Result |
JSP통합을 포함한 web resource통합 을 위해 사용된다. |
FreeMarker Result |
FreeMarker 통합을 위해 사용된다. |
HttpHeader Result |
특정 HTTP가동을 제어하기 위해 사용된다. |
Redirect Result |
다른 URL(web resouece)에 redirect하기 위해 사용된다. |
Redirect Action Result |
다른 action mapping에 redirect하기 위해 사용된다. |
Stream Result |
browser로 Inputstream을 stream하기 위해 사용된다.(일반적으로 파일 다운로드를 위해) |
Velocity Result |
Velocity통합을 위해 사용된다. |
XSL Result |
XML/XSLT 통합을 위해 사용된다. |
PlainText Result |
특정 page(i.e , jsp , HTML) 에 raw content를 display하기 위해 사용된다. |
Tiles Result |
Tiles통합을 위해 사용된다. |
Optional
JasperReports Plugin은 Third-party plugin인 JasperReports Tutorial 을 선택적으로 통합하기 위해 사용된다. 추가적인 Result type은 생성 할 수 있으며, com.opensymphony.xwork2.Result interface를 implement하여 application에 plug될 수 있다.
Custom Result Type들은 email , JMS message, image 생성, 기타 등등 들을 포함한다.
Default Parameters
최소한의 설정으로는 , Result는 parameter안에 변환된 single value로 설정 할 수 있고, 각 Result는 어떤parameter가 값으로 설정되는지 묘사한다.
예를 들어, 다음 예제는 Default parameter를 사용하여 XML안에 정의된 결과 이다:
<result type="freemarker">foo.fm</result>
That is the equivalent to this:
<result type="freemarker"><param name="location">foo.vm</param></result>
대 개 application 의 95% 여러 parameter들을 포함한 결과를 필요로 하지 않기 때문에 이 간단한 중요한 많은 양의 작업 비용을 줄여준다. 또한 Default parameter를 열거할 경우 특별한 이름의 paremeter를 위해 동일 parameter들을 설정할 필요가 없다.
Registering Result Types
모든 Result Type들은 Result Configuration을 통해 plug된다.
Open Framework의 대중화를 위해 : jsHan
[출처] struts2 Result Types (한양IT Education) |작성자 오키도키