struts 2-action,result学習

2769 ワード

Actionタグではmethod属性を使用してどのメソッドを実行するかを指定したり、URL弟子で動的に指定したり(動的にDMIを呼び出す-使用!)してメソッドを呼び出すことができます.
Actionワイルドカード:name="名+*"methodに{1}と書き、そのうち1はnameのいくつかの星を表します.
Actionには3つのパラメータ伝達方法がある:一般的にmodelまたはmodelDrivenを使用して受信する
1.URL伝参.!方法?パラメータ=値
2.URLモデル伝参.!方法?オブジェクト属性=?
登録ユーザーがパスワード属性を確認する必要がある場合にmodelクラスを作成する
Vo(value object)値オブジェクト
Do(data object)データオブジェクト
Dto(date transfer object)データ転送オブジェクト
3.URL modelDrivenパス.ModelDrivenインタフェースを実装し、対応するModelを汎用的に呼び出す
テクニック:複数のボタンが同じformフォームをコミットする
<form name="f" action="" method="post">
   :<input type="text" name="name"/>
  :<input type="text" name="password"/>
<input type="button" value="submit1" onclick="javascript:document.f.action='login/login1';document.f.submit();" />
<input type="button" value="submit2" onclick="javascript:document.f.action='login/login2';document.f.submit();" />
<input type="button" value="submit3" onclick="javascript:document.f.action='login/login3';document.f.submit();" />
<input type="button" value="submit4" onclick="javascript:document.f.action='login/login4';document.f.submit();" />
</form>

Request、session、アプリケーション、HttpServertRequest、HttpSession、HttpContextオブジェクトの4種類を取得します.
//了解
1.構築メソッドまたはexecute()メソッドに書かれているmapタイプ.
request = (Map)ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
//これだけ
2.汎用mapを使用して、3つのインタフェースrequsetAware,sessionAware,アプリケーションAwareの3つのインタフェースを実装します.これらのインタフェースを実現することは、requestの存在を知るべきであることを意味します.あなたに伝えただけで、直接使うことができます.
//了解
3.ActionSupportクラスを継承し、httpタイプです.
private HttpServletRequest request;
	private HttpSession session;
	private ServletContext application;
	
	public LoginAction3() {
		request = ServletActionContext.getRequest();
		session = request.getSession();
		application = session.getServletContext();
	}

//了解
4.ActionSupportクラスを継承し、サーブレットRequestAwareインタフェースを実現する.注入受信.
Includeはstrutsを含む.xmlドキュメント.
デカップリング方式を採用する:サーブレットActionContext.getRequest().
Result構成
一般的なタイプ:
1.dispatcherタイプ、デフォルトタイプ.dispatcherタイプを使用すると、実は転送によってページのジャンプが完了します.ページにジャンプするしかありません.後の結果パスはactionにジャンプできません.
2.redirectはビューにのみジャンプでき、actionではありません.
3.chainはactionにジャンプできます.
4.クライアントジャンプ用redirectAction.