Controller的使用


对于只使用@Controller注解控制器,必须配套有模板(如JSP),否则报404错误
而使用@RestController注解则不须配有模板

只使用@Controller注解

须添加模板,此处为如Spring官方的Thyemleaf模板(替代JSP的好东西),添加jar包

目录结构:

模板文件:index.heml

<h1>hello Spring Boot!</h1>

控制器类:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

/** * Created by Shusheng Shi on 2017/5/3. */
@Controller
public class HelloController {

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String say() {
        return "index";
    }

}

运行结果


现在流行前后端分离,后端只需要提供rest接口,返回一些json格式给前端,不需要模板,会影响性能

若将控制器类里的方法写成如下所示(即无method属性)

 @RequestMapping(value = "/hello")
    public String say() {
        return girlProperties.getCupSize();
    }

那么使用GET/POST方式访问皆可.不过并不推荐如此写法,毕竟两种方法适合于不同需求

控制器方法

@RequestMapping(value = "/{id}/say", method = RequestMethod.GET)
    public String say(@PathVariable("id") int id) {
        return "id: " + id;
    }

运行结果

控制器方法

@RequestMapping(value = "/say", method = RequestMethod.GET)
    public String say(@RequestParam("id") int myId) {
        return "id: " + myId;
    }

运行结果

设置id默认值

@RequestMapping(value = "/say", method = RequestMethod.GET)
public String say(@RequestParam(value = "id", required = false, defaultValue = "0") int myId) {
        return "id: " + myId;
    }

运行结果


另替代写法

//  @RequestMapping(value = "/say", method = RequestMethod.GET)
    @GetMapping(value = "/say")
全部评论

相关推荐

Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务