0

我必须在第一个控制器的基础上调用一个控制器我必须调用另一个控制器......但这在 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

您应该返回模型和视图对象。以“forward:/”开头的视图名称将完成这项工作,否则 Spring 甚至不会尝试解释响应。实现开关和调用其他映射作为对另一个 java 函数的简单调用的另一个选项。

于 2012-04-23T07:51:33.080 回答
0

返回包含视图名称的字符串与返回视图名称设置为字符串的 ModelAndView 对象完全相同。如果只返回一个字符串,Spring 会在内部创建一个 ModelAndView 并将视图名称设置为字符串的值。

在您的示例中,您不应使用 @ResponseBody 注释 mmiFacade 方法。使用@ResponseBody 绕过了视图解析过程,即检测和处理视图名称中的“forward:”和“redirect:”前缀。

于 2012-04-24T01:39:09.477 回答