ページ遷移
struts.xmlに記述する方法と、アノテーションを使用する方法がある。
struts.xmlに記述する場合
<action name="A" method="B" class="C">
<result name="D">E</result>
</action>
A:任意のアクション名
B:実行するメソッド
C:実行するアクションクラス
D:アクションクラスより返却する、遷移先を示す文字列
E:遷移先JSP
例) test1.jsp → TestAction → test2.jsp
struts.xml
<action name="TestActionName" method="doTest" class="jp.co.sample.TestAction">
<result name="input">webroot/test2.jsp</result>
</action>
test1.jsp
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<s:submit action="TestActionName" value="実行" />
</body>
</html>
TestAction.java
public class TestAction {
public String doTest() {
return "input";
}
}
test2.jsp
<html>
<body>
遷移成功
</body>
</html>
アノテーションを使用する場合
命名規約に従うことでstruts.xmlの設定が不要となる。
例) 前述と同様
web.xml
- filterタグの中にアクションクラスのパッケージを指定
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>jp.co.sample</param-value>
</init-param>
</filter>
</web-app>
test1.jsp
アクション名の指定を規約に従う。
- アクションクラス名の頭を小文字にし、「Action」を抜いた文字列を指定する
- 実行メソッド名は、「!」の後に記述する
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<s:submit action="test!doTest" value="実行" />
</body>
</html>
TestAction.java
- struts.xmlのpackageタグのnameをParentPackageに記述
- 遷移先のJSPをアノテーションで記述
@ParentPackage(value="mydefault")
@Results({
@Result(name="input" value="webroot/test2.jsp")
})
public class TestAction {
public String doTest() {
return "input";
}
}
test2.jsp
<html>
<body>
遷移成功
</body>
</html>
最終更新:2009年04月01日 07:44