Struts2

インターセプター

アクションクラス呼び出しの前後に処理をさせたい場合に記述

HttpServlet

HttpServletRequest req = ServletActionContext.getRequest();
HttpServletResponse res = ServletActionContext.getResponse();
HttpSession ses = req.getSession();

struts.xml

<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>