ひがやすを技術ブログ

電通国際情報サービスのプログラマ

invokeタグ

invokeタグを使って、HTMLからActionのメソッドを呼び出せますが、戻り値で、遷移先のページを指定することができます。
特定のページだけ、ログインさせるようにするなんてのも簡単に実現できます。
また、ある条件に一致したときは、ページをスキップして、次のページに遷移するなんてことも出来ます。
なんか、HTMLにアスペクトを指定しているような感覚です。


<span s:type="invoke" s:action="#{loginAction.checkLogin}">
<span s:type="param" s:name="nextPage" s:value="selfPage"/>
</span>

LoginActionImpl


public static final String nextPage_EXPORT = "session";
private String nextPage

String checkLogin() {
if (session.getAttribute("loginInfo") == null) {
return "login";
}
return null;
}
String login() {
//認証
if (nextPage != null) {
return nextPage;
}
return "main";
}

LoginActionImplに設定されたnextPageプロパティは、EXPORTアノテーションで自動的にSessionに格納されるので、Loginページは、login後、nextPageで指定されたページに遷移させることができます。