PGBox
P
G
Box

logic redirectタグ

logicタグのメニューへ戻る



使用した環境
JDK 6 Update 11
struts 1.3.10

別のページへリダイレクトします。


属性必須意味
actionリダイレクト先を、struts-configの<action-mappings><action>のpathで指定した値で指定する。
pageリダイレクト先を、webアプリケーション名以降のパスで指定する。
forwardリダイレクト先を、struts-configの<global-forwards><forward>のnameで指定した値で指定する。
hrefリダイレクト先、<a>タグのhref属性と同様の構成のパスで指定する。
anchorリダイレクト先URLに追加するアンカー。#から開始しない値を指定する。
name複数のURLパラメータを自動で追加する場合に指定。java.util.Mapを保持するbean名を指定する。
property複数のURLパラメータを自動で追加する場合に指定。java.util.Mapを保持するbeanのプロパティ名を指定する。
scope複数のURLパラメータを自動で追加する場合に指定。java.util.Mapを保持するbeanが存在するスコープを指定する。page・request・session・applicationのいずれかを指定。省略時は自動的にbeanが存在するスコープが検索される。
paramId単一のURLパラメータを追加する場合に指定。URLパラメータの名前を指定する。
paramName単一のURLパラメータを追加する場合に指定。パラメータの値を保持するbean名を指定する。
paramProperty単一のURLパラメータを追加する場合に指定。パラメータの値を保持するbeanのプロパティ名を指定する。
paramScope単一のURLパラメータを追加する場合に指定。パラメータの値を保持するbeanが存在するスコープを指定する。page・request・session・applicationのいずれかを指定。省略時は自動的にbeanが存在するスコープが検索される。
useLocalEncodingURLパラメータのURLエンコードを行う際に、<%@pagecontentType="xxx"%>などで設定されたレスポンス文字コード(HttpServletResponse#getCharacterEncoding()によって得られるエンコード)を使用する場合にtrue。デフォルトはfalse(UTF-8でエンコードされる)
transaction2度押し防止のためのトランザクショントークンを、セッションから取得しURLパラメータに追加する場合にtrueを指定する。デフォルトはfalse。



以下は、パラメータなしで別のページへリダイレクトするサンプルになります。
<logic:redirect page="/aaa.jsp" />



URLに複数のパラメータを自動で追加するには、まずフォームに以下のようにMapを用意します。
import java.util.Map;
import org.apache.struts.action.ActionForm;

public class SampleForm extends ActionForm {
    
    private Map<String, String> paramMap;
    
    ※ 以下、setter, getter
}


Actionでは、そのMapにパラメータをセットします。
public ActionForward execute(ActionMapping mapping, ActionForm form0, ...
    SampleForm form = (SampleForm) form0;
    
    Map<String, String> paramMap = new HashMap<String, String>();
    paramMap.put("param1", "ABC");
    paramMap.put("param2", "DEF");
    form.setParamMap(paramMap);
    
    return mapping.findForward("success");
}


JSPでは以下のように指定します。
<logic:redirect page="/aaa.jsp" name="SampleForm" property="paramMap" />


上記サンプルの場合
/aaa.jsp?param1=ABC&param2=DEF
へリダイレクトが行われます。


単一値のパラメータを使用する場合は、フォームにMapではなくStringを用意しておき
paramIdでURLパラメータ名を指定し、paramName・paramPropertyでフォーム内のパラメータのプロパティを指定する事で、パラメータ文字列をURLに追加する事ができます。




logicタグのメニューへ戻る