| Home > Guides > Core Developers Guide > Annotations > Result Annotation |
The @Result annotation allows the definition of Action results in the Action class rather than an XML file.
The @Result annotation lives at the Action class level and not the method level. This matches what is found in an XML-based Action configuration. Do not be tempted to annotate your Action's methods; it will not work.
In order for @Result and @Results annotations to be configured correctly you must set the actionPackages filter init-param to a comma-separated list of packages containing the annotated Action classes. See Zero Configuration for further information; there are Action class naming conventions if you don't implement the Action interface and other tidbits there.
@Result Annotation ParametersAction.SUCCESSNullResult. For example:
NullResult.classFreemarkerResult.classPlainTextResult.classVelocityResult.classServletDispatcherResult.classServletRedirectResult.classServletActionRedirectResult.class - equivalent to the redirectAction type in XML configTilesResult.classResult interface)@Result – Defining a Single ResultMap the "success" result (explicitly named) to a Tile definition named "/home.page".
@Result(name="success", value="/home.page", type=TilesResult.class)
public class HomeAction extends ActionSupport {
// ...
}
@Results – Defining Multiple ResultsDefines a set of results for an Action.
@Results({
@Result(name="success", value="/home.page", type=TilesResult.class),
@Result(name="homeError", value="/homeError.page", type=TilesResult.class)
})
public class HomeAction extends ActionSupport {
// ....
}