[Seasar-user:14630] Re: 【SAStruts】パラメータ付URLをクリックして、元の画面に遷移する場合は、リダイレクトが必須でしょうか?

出羽 健一 [E-MAIL ADDRESS DELETED]
2008年 6月 10日 (火) 22:17:24 JST


出羽です。

自分は似たようなケースでリダイレクトを使っていました。

でも return "index?redirect=true"; ではなくて、
return "/employee/?redirect=ture"; のような使い方でした。
(※ /employee/ は一覧画面のパス)

後者の方がリダイレクト後の一覧画面のURLから delete/1 のような
相対パスに対応しやすいからです。

> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED] 
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Yasuo Higa
> Sent: Tuesday, June 10, 2008 6:27 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:14626] Re: 
> 【SAStruts】パラメータ付URLをクリックして、元の画面に遷移する場合は、リダイレクトが必須でしょうか?
> 
> ひがです。
> 
> > 度々すいません、尾野です。
> > 
> > パラメータ付URLをクリックして、元の画面に遷移する場合は、リダイレクトが必須でしょうか?
> > 
> > 例えば、
> > 
> > 一覧画面にある「削除リンク」をクリックして、
> > 再描画して、一覧画面を表示するケースがある場合です。
> > 
> > 	@Execute(validator = false, urlPattern = "delete/{key}")
> > 	public String delete() {
> > 		Condition condition = 
> jdbcManager.from(Condition.class).id(conditionDto.key).getSing
> leResult();
> > 		int i = jdbcManager.delete(condition).execute();
> > 		System.out.println("削除した件数:" + i);
> > 
> > 		return "index";		// NGケース(フォワードする場合)
> > 		//return "index?redirect=true";	// OKケース(リダイレクトする場合)
> > 
> > 	}
> > 
> > 
> > フォワードの場合、画面に描画されるURLが以下のようになります。
> > 
> > 初期表示のURL		:delete/1
> > フォワード後のURL	:delete/delete/1
> > 
> フォワードした場合には、リクエスト時のパスをブラウザは認識します。
> フォワードされたパスではありません。
> 
> HogeActionに
> <a href="delete/${f:u(xxx.id)}" ...>
> のようなリンクがあった場合、
> 初期表示時にブラウザが認識しているカレントのパスは/hoge/です。
> 
> /hoge/delete/1をクリックするとブラウザが認識しているカレントのパス
> は/hoge/delete/です。
> 
> リンクをクリックして次画面に戻ったときのhref="delete/1"が
> どのように解釈されるかというとカレントのパスから見たパスになるので
> /hoge/delete/delete/1になります。
> 
> これを避けるためには、1.0.2-rc4から追加されたf:url()を
> 使ってこう書いてください。
> <c:set var="url" value="delete/${f:u(xxx.id)}"/> <a 
> href="${f:url(url)}" ...>
> 
> f:url()を使うとカレントのパスではなく、コンテキストルートから見た
> パスになります。
> 
> c:setなしでいけるといいのだけど、JSPのファンクションは
> ネストして使えないみたい。
> 
> アイディア誰かたのむ
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


Seasar-user メーリングリストの案内