ソース表示: Blanco2g_Annotation_BlancoStrutsForward #75740

= @!BlancoStrutsForward アノテーション
Apache Struts Action のための設定ファイルを自動生成します。

== 仕様
=== 適用箇所
 * フィールド

=== アノテーション要素
|| '''キー''' || '''型''' || '''必須''' || '''デフォルト''' || '''説明''' ||
|| path || 文字列 || ○ || - || Apache Struts の struts-config.xml ファイルの forward 記述の path 属性の値 ||
|| redirect || 真偽値 || - || false ||  Apache Struts の struts-config.xml ファイルの forward 記述の redirect 属性に true を設定するかどうか ||

=== 詳細
 * 基本的に、@!BlancoStrutsLogic と組み合わせて利用します。
 * Struts の Forward 先を記述し、これを execute メソッドの戻り値として利用します。
 * struts-config.xml ファイルの一部を自動生成することができます。
 * !BlancoStruts の Blanco2g 実装にあたります。

== 利用の例
=== 入力ソースコード: !AbstractSampleLogic.java
{{{ code java
package sample.struts;

import java.sql.Connection;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionMapping;

import blanco.fw.BlancoInject;
import blanco.struts.BlancoStrutsForward;
import blanco.struts.BlancoStrutsLogic;

/**
 * サンプル・ロジック。
 */
@BlancoStrutsLogic(path = "/run")
public abstract class AbstractSampleLogic {
    /**
     * 正常系の次画面。
     */
    @BlancoStrutsForward(path = "/next.jsp")
    private static final String FORWARD_SUCCESS = "success";

    /**
     * 異常系画面。
     */
    @BlancoStrutsForward(path = "/error.jsp")
    private static final String FORWARD_ERROR = "error";

    /**
     * ビジネスロジック
     * 
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @param conn
     *            メソッド・パラメータによるデータベース接続インジェクション。
     *            このメソッドの呼び出し直前にデータベース・トランザクションが開始され
     *            、このメソッドの終了直後にロールバックとトランザクション終了が実施されます。
     * @return
     * @throws Exception
     */
    public String execute(final ActionMapping mapping, final SampleForm form, final HttpServletRequest request,
            final HttpServletResponse response, @BlancoInject final Connection conn) throws Exception {
        if (true) {
            return FORWARD_SUCCESS;
        } else {
            return FORWARD_ERROR;
        }
    }
}
}}}

== リンク
 * [Blanco2g_Annotation Blanco2g アノテーション一覧]
 * [Blanco2g Blanco2g トップページ]