私はSpring 3.1を使用しています。FORM 経由で送信されたコマンド オブジェクト (データ ホルダー) を受け取り、何らかの処理を行うコントローラー関数があります。
@RequestMapping(value = "/results", method = RequestMethod.POST)
public String toResultsScreen(@ModelAttribute("ssdh") SearchScreenDataHolder ssdh,
BindingResult bindingResult,
ModelMap model,
HttpSession session) {
if (bindingResult.hasErrors()) {
logger.debug("Error returning to /search screen");
return "search";
}
netView = "results";
// do stuff
return nextView;
} // end function
一部のユーザーは、プログラムで GET リンクを作成してサイトから情報を取得したいと考えており、その要求を処理する別のハンドラーをセットアップしたいと考えています。そのコマンド オブジェクト ( ssdh ) の新しいインストールを作成し、GET 要求を介して送信されたパラメーターを入力します。次に、それを上記のハンドラーに渡します。このようなもの:
@RequestMapping(value = "/pubresult")
public String toPublicResultsScreen(ModelMap model,
HttpSession session,
@RequestParam (required=true) String LNAME,
@RequestParam (required=false)String FNAME){
Search search = new Search(usertype);
// Capture the search parameters sent by HTTP
ssdh.setLast_name(LNAME);
ssdh.setFirst_name(FNAME);
// To Do: "forward this data holder, ssdh to the controller function quoted first
return nextView;
} // end function
私の質問は、コードを最初のコントローラー関数に変更する必要がないように、コマンド/データホルダーオブジェクトを最初のコントローラー関数に転送するにはどうすればよいですか?