Struts2
インターセプター
アクションクラス呼び出しの前後に処理をさせたい場合に記述
HttpServlet
HttpServletRequest req = ServletActionContext.getRequest(); HttpServletResponse res = ServletActionContext.getResponse(); HttpSession ses = req.getSession();
<action name="アクション名" class="クラス名" method="メソッド名" type="処理のタイプ"> <result name="アクションが返す文字列">遷移先のクラスやjsp</result> </action> <action>要素のmethod属性を省略した場合は、execute()が呼ばれる <action>要素のtype属性を省略した場合は、dispatcherとなる <result>要素のname属性を省略した場合は、successとなる
WEB-INF/libディレクトリに最低限必要なファイル
commons-logging-1.0.4.jar - ログ出力 freemarker-2.3.8.jar - Struts2標準のテンプレートエンジン ognl-2.6.11.jar - 式言語ライブラリ struts2-core-2.0.9.jar xwork2.0.4.jar -Struts2のベースになっているWebアプリケーションライブラリ
カスタムタグを使う
<%@ taglib prefix="s" uri="/struts-tags" %>
フォームに入力した値をActionクラスで取得
JSP <s:form theme="simple"> 名前<s:textfield key="name" /> <s:submit value="送信" action="Test" /> JAVA public class Test extends ActionSupport { private String name; public void setName(String name) { this.name = name; } public String execute() throws Exception { return SUCCESS; } } </s:form>
web.xml
<?xml version="1.0" encoding="UTF-8" ?> <web-app> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>