-1

在 spring 中编写控制器处理程序有 2 种格式。
有人可以帮助总结什么决定了要使用的格式。
还有什么是偏好格式?
作为一个新手,这将有助于走上正轨。

选项1:

@RequestMapping(value=".....", method=RequestMethod.GET)
    public String loadFormPage(Model m) {
        m.addAttribute("subscriber", new Subscriber());
        return "formPage";
    }

    @RequestMapping(value="....", method=RequestMethod.POST)
    public String submitForm(@ModelAttribute Subscriber subscriber, Model m) {
        m.addAttribute("message", "Successfully saved person: " + subscriber.toString());
        return "formPage";
    }

选项 2:

@RequestMapping(value=".....")
    public ModelAndView personPage() {
        return new ModelAndView("person-page", "person-entity", new Person());
    }

    @RequestMapping(value=".....")
    public ModelAndView processPerson(@ModelAttribute Person person) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("person-result-page");

        modelAndView.addObject("pers", person);

        return modelAndView;
    }
4

1 回答 1

0

Spring 中的控制器方法可以支持零对多的输入参数,Spring 中用于指定输入参数的主要机制是注解@RequestParam@ModelAttribute注解。注解用于将单个请求参数(如字符串和整数)绑定到控制器中的方法参数
。注释用于将复杂对象(如域对象、数据传输对象和/或表单支持对象)绑定到控制器中的方法参数 。@RequestParam
@ModelAttribute

注释由变量类型决定。
原始变量将被注释@RequestParam
复杂变量将被注释@ModelAttribute

注解名称来源于变量名称

Spring 中的控制器方法也可以输出模型数据,Spring 中指定输出模型数据的主要机制是ModelAndView对象。
如果该方法没有返回任何数据,控制器方法可以简单地返回一个String表示应该呈现的视图的值。
如果控制器方法确实返回数据,则ModalAndView需要实例化一个对象,并将每个输出变量作为模型属性添加到该ModelAndView对象。

于 2013-09-05T05:36:16.737 回答