リダイレクトでパラーメーターを追加する。

 簡単にできると思ったら、なんか難しいらしい……。
 とりあえずリダイレクトで実現できるっぽい。

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 と組み合わせる場合には変更後のを渡さなきゃいけないんだよね……。