0

最初のコントローラーに基づいて1つのコントローラーを呼び出す必要があります別のコントローラーを呼び出す必要があります......しかし、これはSpring 3 mvcでは機能しません........

@Controller
public class ajaxContoller {
      @RequestMapping(value="/mmiFacade",method=RequestMethod.POST)
    public  @ResponseBody String mmiFacade(@RequestParam String sType){
                       String forwardName = "";          
        if (sType.equalsIgnoreCase("Pincode")) {

            forwardName = "forward:/pincodeAction";
        } else if (sType.equalsIgnoreCase("Locality")) {

            forwardName = "forward:/localityAction";
        } else if (sType.equalsIgnoreCase("Patient")) {

            forwardName = "forward:/patientAction";
        } else if (sType.equalsIgnoreCase("Dlhdata")) {

            forwardName = "forward:/Dlhdata";
        } 
           return forward;  

    }



    @RequestMapping(value="/pincodeAction",method=RequestMethod.POST)
    public @ResponseBody String ajax(){
            return "hiii";

    }
 @RequestMapping(value="/localityAction",method=RequestMethod.POST)
    public @ResponseBody String ajax1(){
            return "hiii1";

    }


}
4

2 に答える 2

0

modelandview オブジェクトを返す必要があります。「forward:/」で始まるビュー名が仕事をします。そうでない場合、Spring は応答を解釈しようとさえしません。スイッチを実装し、別の Java 関数への単純な呼び出しとして他のマッピングを呼び出す別のオプション。

于 2012-04-23T07:51:33.080 に答える
0

ビュー名を含む文字列を返すことは、ビュー名が文字列に設定された ModelAndView オブジェクトを返すこととまったく同じことを行います。String を返すだけの場合、Spring は内部で ModelAndView を作成し、ビュー名を String の値に設定します。

あなたの例では、mmiFacade メソッドに @ResponseBody で注釈を付けるべきではありません。@ResponseBody を使用すると、ビュー名の "forward:" および "redirect:" プレフィックスが検出されて処理されるビュー解決プロセスがバイパスされます。

于 2012-04-24T01:39:09.477 に答える