2016-12-19 4 views
1

前のURLへのリクエスト後に問題が発生しました。Java/Springは、リクエストを受け取った前のページ/ページを参照する新しいModelAndViewを作成します。

チームのすべてのチームプレーヤーがリストされているチームページ(.../team/teamMembers/{id})があります。チームのプレーヤーをチームから削除するには、削除ボタンがあります。このリクエストが行われた後、もう一度team/teamMembers/{id}ページに戻って、今編集しています。

私の要求は次のようになります。

@RequestMapping(value = "/deleteTeam/{id}", method = RequestMethod.GET) 
public ModelAndView deleteTeam(@PathVariable Integer id) { 
    ModelAndView modelAndView = new ModelAndView("/team/teamMembers/{id}"); 
    memberService.deleteTeam(id); 
    List<Member> members = memberService.getMembers(); 
    modelAndView.addObject("members", members); 
    String message = "Member was successfully deleted from team."; 
    modelAndView.addObject("message", message); 
    return modelAndView; 
} 

しかし、もちろん、team/teamMembers/{id}は{ID}は値を持っていないので、動作しない、との良好なURL文字列ではありません。さらに、deleteTeam/{id}のIDはmemberIDであり、teamIDではありません。

getRequestが作成されたページにリダイレクトするにはどうすればよいですか?

+0

良いかどうかは分かりませんが、deleteTeam/{id}が呼び出されているときは、あなたのteamIdを隠し値として送信できます。 @RequestParamを使用してその隠しIDを抽出し、 'redirect/team/teamMembers/{idRetrieved}'を使用します。 – SachinSarawgi

答えて

0

チームメンバーを削除するときにも、チームメンバーを削除する必要があります。これは、チームメンバーページを再度リダイレクトするためです。

// Also get teamId while deleting via path variable or as a parameter in controller 
// /deleteTeam/{teamId}/{memberId} may be used 
// or more user friendly readable path /team/{teamId}/delete/member/{memberId} 
return new ModelAndView("redirect:/team/teamMembers/"+ teamId); 

このようにしても問題ありません。

関連する問題