logic redirectタグ
使用した環境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が存在するスコープが検索される。 | useLocalEncoding | | URLパラメータのURLエンコードを行う際に、<%@pagecontentType="xxx"%>などで設定されたレスポンス文字コード(HttpServletResponse#getCharacterEncoding()によって得られるエンコード)を使用する場合にtrue。デフォルトはfalse(UTF-8でエンコードされる) | transaction | | 2度押し防止のためのトランザクショントークンを、セッションから取得し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¶m2=DEF へリダイレクトが行われます。
単一値のパラメータを使用する場合は、フォームにMapではなくStringを用意しておき paramIdでURLパラメータ名を指定し、paramName・paramPropertyでフォーム内のパラメータのプロパティを指定する事で、パラメータ文字列をURLに追加する事ができます。
|