0

私は春が初めてなので、これを行う方法がわかりません。単一のコントローラーメソッドを使用して2つのユースケースを処理する必要があります。

メソッドは既に配置されているため、他のすべての機能主義者を壊す可能性があるため、その署名を変更することはできません。ここにメソッドの署名があります

@RequestMapping(value = "/edit-address", method = RequestMethod.POST)
    public @ResponseBody JsonResponse editAddress()

JsonResponse次の署名を持つカスタムオブジェクトです

private String status;
private Object result;
private String steps;

この住所を第三者から検証する必要があり、戻り結果に基づいてポップアップを表示する必要があるというもう 1 つの要件があります。メソッド シグネチャがカスタム オブジェクトでない場合は、ポップアップを簡単に表示できますが、これを行う方法がわかりません。

次のいずれかを達成する方法はありますか

  1. このメソッドから JSON オブジェクトの代わりに JSP コンテンツをビューに送り返す。
  2. UI にビューを送り返すことができるコントローラー内の別のメソッドに制御を内部的に転送するには
4

1 に答える 1

0

このコントローラーを、このコントローラーの内部で制御して呼び出しを委任できる別のコントローラーで構成し、次のようにするとどうでしょうか。

@Controller
public class WrapperController{
    @Autowired JsonResponseController jsonResponseController;

    @RequestMapping("/custom_jspview")
    public String customRequestMapping(..., Model model){
        JsonResponse jsonResponse = this.jsonResponseController.editAddress();
        model.addAttribute("jsonresponse", "jsonResponse");
        return "myview";
    }

    @RequestMapping("/redirectView")
    public String redirectView(){
         return "redirect:/custom_jspview";
    }
}
于 2012-10-23T17:27:30.673 に答える