Spring之Controller使用篇1模型自动装配对象或集合

一、Controller之使用策略

@RequestMapping的使用十分重要,这个注解即可以放在方法上,不用显式声明提交方式,比如像这样:

    @RequestMapping("/spittles")
    public List<Spittle> spittles(@RequestParam(value = "max", defaultValue = MAX_LONG_AS_STRING) long max,
            @RequestParam(value = "count", defaultValue = "20") int count) {
        System.out.println("spittleswdc");
        return spittleMapper.findSpittles(max, count);
    }

这个注解另有做法,也是本人最喜欢的做法是,在类和方法上同时加入此注解,比如像这样:

 1 @RequestMapping("/spittles")
 2 public class SpittleController {
 3 
 4     @RequestMapping(method = RequestMethod.GET)
 5     public List<Spittle> spittles(@RequestParam(value = "max", defaultValue = MAX_LONG_AS_STRING) long max,
 6             @RequestParam(value = "count", defaultValue = "20") int count) {
 7         return spittleMapper.findSpittles(max, count);
 8     }

 这样做的好处,就是前台提交时不用写路径,默认提交到本页面。

关于返回视图名称上面代码是一种受限制但是非常好用的返回方案,他并没有返回视图名称"spittles",也没有使用Model模型添加List,

这地方Spring实现了下面这种方式:

 1     /*
 2      * Spring4.0以后,像下面这这种方法也是可以的,它没有返回视图名称,也没有显式设定模型(Model),这个方法返回的是Spittle列表。
 3      * 当处理器方法像这样返回对象或者集合时,这个值会放在模型中,模型的key会根据其数据类型判断得出(在本例中,List<Spittle>)spittleList。
 4      * 而逻辑视图的名称会根据请求路径的推断得出,因为这个方法处理针对/Spittles的get请求,因此视图的名称将会是spittles。
 5      * 当然你也可以用ModelAndView把List加进来。
 6      */
 7 
 8     @RequestMapping(method = RequestMethod.GET)
 9     public List<Spittle> spittles(@RequestParam(value = "max", defaultValue = MAX_LONG_AS_STRING) long max,
10             @RequestParam(value = "count", defaultValue = "20") int count) {
11         System.out.println("spittleswdc");
12         return spittleMapper.findSpittles(max, count);
13     }

 

posted on 2017-09-06 15:21  剑姬  阅读(566)  评论(0编辑  收藏  举报

导航