リダイレクトでパラーメーターを追加する。
簡単にできると思ったら、なんか難しいらしい……。
とりあえずリダイレクトで実現できるっぽい。
package t_struts01; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.RedirectingActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.validator.DynaValidatorForm; /** * リダイレクトでパラメーターを追加します。 */ public class Action10b extends Action { public ActionForward execute ( ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response ) throws java.io.IOException, javax.servlet.ServletException { // パラメーターを取り出します。 DynaValidatorForm dynaForm = (DynaValidatorForm)form; String data2 = (String)dynaForm.get( "data2" ); if ( ( data2 == null ) || ( data2.equals( "" ) ) ) { System.out.println( "data2:" + data2 ); RedirectingActionForward redirect = new RedirectingActionForward ( "Action10b.do?data2=data2desu" ); return redirect; } // else System.out.println( "data2:" + data2 ); return (mapping.findForward("success")); } }
こんなめんどいことせなならんのか……。
mod_rewrite と組み合わせる場合には変更後のを渡さなきゃいけないんだよね……。