ActionForward動的転送
ActionForwardの役割は1つのページから別のページにリンクすることであり、最も簡単な応用はmappingである.findForward("success").
プロパティ:name-論理名;path-URL;redirect-true Yesに設定すると、リダイレクトされ、デフォルトはfalseです.className(オプション)-デフォルトはActionForwardです.
一般的な呼び出しプロセス:ActionServiceletがActionを呼び出すと、ActionはMappingのfindForward()を渡します.findForward()は、ローカル転送リストでkeyを探し、見つからない場合はグローバル転送リストから探します.見つからない場合はnullを返し、ブラウザがエラーを報告します.
タグでの使用:
プロファイルにforwardを定義します.
で:
実行結果:
ここで、パラメータがすでに存在する場合、ラベルは接続記号を追加してからパラメータを追加するのに役立ちます.
転送するパスを追加:
Actionクラスにパラメータを追加するには、次の手順に従います.
ActionForwardがリダイレクトに設定されていない場合、新しいパラメータは現在のrequestのパラメータにマージされます.新しいパラメータ名が元のパラメータ名と同じである場合、新しい転送期間内に新しいパラメータ値が使用されます.
プロパティ:name-論理名;path-URL;redirect-true Yesに設定すると、リダイレクトされ、デフォルトはfalseです.className(オプション)-デフォルトはActionForwardです.
一般的な呼び出しプロセス:ActionServiceletがActionを呼び出すと、ActionはMappingのfindForward()を渡します.findForward()は、ローカル転送リストでkeyを探し、見つからない場合はグローバル転送リストから探します.見つからない場合はnullを返し、ブラウザがエラーを報告します.
プロファイルにforwardを定義します.
<forward name="article" path="/do/article?dispatch=view"/>
<html:link forward="article" paramName="articleForm" paramProperty="articleKey" paramId="key">News from the edge</html:link>
実行結果:
<a href="http://localhost/artimus/do/article?dispatch=view&key=17">News from the edge</a>
ここで、パラメータがすでに存在する場合、ラベルは接続記号を追加してからパラメータを追加するのに役立ちます.
転送するパスを追加:
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
ActionForward forward = new ActionForward();
String loginid = ((LoginForm)form).getLoginid();
String password = ((LoginForm)form).getPassword();
if(...){
...... // business code
forward.setPath("welcome.jsp");
}else{
ActionMessages errors = new ActionMessages();
.......
forward = mapping.findForward("Failure");
}
return forward;
}
Actionクラスにパラメータを追加するには、次の手順に従います.
ActionForward forward = mapping.findForward("article");
StringBuffer path = new StringBuffer(forward.getPath());
boolean isQuery = (path.indexOf("?")>=0);
if (isQuery)
path.append("&dispatch=view");
else
path.append("?dispatch=view");
return new ActionForward(path.toString());
ActionForwardがリダイレクトに設定されていない場合、新しいパラメータは現在のrequestのパラメータにマージされます.新しいパラメータ名が元のパラメータ名と同じである場合、新しい転送期間内に新しいパラメータ値が使用されます.