遷移先を設定する
書式
@Result(name="戻り値文字列", value="遷移先", type=クラス)
例:
@Result(name="success", type=ActionChainResult.class, value="actionName")
参照ライブラリ:struts2-core-2.1.6.jar
importするクラス:import org.apache.struts2.config.Result;
戻り値文字列:Actionクラスのメソッドが戻り値として返す文字列です。「success」「input」などを指します。
遷移先:ActionClassまたはファイル名を指定します。
遷移先の指定に関してはtypeに依存します。
(ActionChainResult.classの場合はActionClass、
ServletDispatcherResult.classの場合はjspファイル名など)
クラス:指定できるクラスは以下の表を参照してください。
typeを指定する場合は以下のクラスをimportする必要があります。
(※eclipseではこのimportについて補完できないようですので、手動で設定する必要があります)
struts.xml で指定する type | アノテーションで指定する type | アノテーション使用時にimportするクラス |
---|---|---|
chain | ActionChainResult.class | com.opensymphony.xwork2.ActionChainResult |
dispatcher | ServletDispatcherResult.class | org.apache.struts2.dispatcher.ServletDispatcherResult |
freemarker | FreemarkerResult.class | org.apache.struts2.views.freemarker.FreemarkerResult.class |
httpheader | HttpHeaderResult.class | org.apache.struts2.dispatcher.HttpHeaderResult |
redirect | ServletRedirectResult.class | org.apache.struts2.dispatcher.ServletRedirectResult |
redirectAction | ServletActionRedirectResult.class | org.apache.struts2.dispatcher.ServletActionRedirectResult |
redirect-action | ServletActionRedirectResult.class | org.apache.struts2.dispatcher.ServletActionRedirectResult |
stream | StreamResult.class | org.apache.struts2.dispatcher.StreamResult |
velocity | VelocityResult.class | org.apache.struts2.dispatcher.VelocityResult |
xslt | views.xslt.XSLTResult.class | org.apache.struts2.views.xslt.XSLTResult.class |
plainText | PlainTextResult.class | org.apache.struts2.dispatcher.PlainTextResult |
plaintext | PlainTextResult.class | org.apache.struts2.dispatcher.PlainTextResult |
デフォルト指定
上記タイプの「dispatcher(ServletDispatcherResult.class)」はデフォルトで指定されているので、 「dispatcher(ServletDispatcherResult.class)」を指定したい場合にはtypeを省略できます。 この場合、valueにはjspファイル名を指定します。 (指定したファイルに関連付けられているアクションクラスがあっても実行しません)
例:@Result(name="success", value="actionName.jsp")
戻り値「success」はデフォルトで指定されているので、戻り値が「success」の場合はnameを省略できます。
例:@Result(value="actionName.jsp")
@Result(name="success", value="actionName.jsp", type=ServletDispatcherResult.class)
複数の遷移先を指定したい場合
書式
@Results( {
// 遷移先をカンマで区切って列挙します
})
例:
@Results( {
@Result(name = "success", value = "listdisp", type = ActionChainResult.class),
@Result(name = "input", value = "index.jsp")
})