spring controller一些写法

//@RestController 等于 @Controller + @ResponseBody  REST风格 
@Controller
@RequestMapping("/")
public class mainController {
    @RequestMapping("/")
public @ResponseBody    String Helloword(){//@ResponseBody 数据写进body里。
    return "helloworld. this is from controller";
}
    @GetMapping("/get")
public String word(){
        return "指定 get 方法";
}
    @RequestMapping(path = "/post" ,method = RequestMethod.POST)//REST风格的 PUT 等 指定。同样的可以指定 consumes 媒体类型 .produces 字段 对应http Accept 如applicatin/json
    public String word1(){
        return "指定 post 方法";
    }
    @GetMapping(value = "/param/{id}.json")
    public String param(@PathVariable("id") Long id){//匹配 id     还可以通配符/**/1.html    ${} 也可以  long id 改为 long userid 也是可以的。
        return "URL路径匹配,参数 匹配"+id;
    }
    @RequestMapping(value = "/consumes",consumes = "application/json")
    @ResponseBody
    public String consumes(){
        return "指定 consumes 方法";
    }
//    还可以热爱多种参数类型
@RequestMapping(value = "/var")
@ResponseBody
public String var(){
/*
      @pathvariable
      Model mvc 通用模型
      model and view
      javaBean  映射到bean 上 ,如 pojo
      multipartFile  文件上传
      @ModelAtrribute
      IO 流
      矩阵
      HTTPMesthod 枚举类型
      @RequestParam 对应HTTP 请示的参数
     @REQUESTHEADER  同上
     @ReauestBody 将请示内容转为指定对象
     @RequestPart 文件上传
     @sessionAttribute
     @RequestAttribute
     @InitBinder 会注册多个转化器,以便将http 请示参数转为对应java对象 。如 日期 ,float  javabean 等。实现 接口webbindinginitializer 实现 自定义

*/

    return "mutli var ";
}
    @RequestMapping(value = "/model")
    @ResponseBody
    public String model(Model model){
//        userid= Xx.getid();
//        model.addAllAttributes("user",userid);  一般用于视图之中 模板视图之中
        return "/model.html";//model.html 中的model 数据绑定之类的。
    }

    @RequestMapping(value = "/re")
    @ResponseBody
    public String re(@RequestParam(name = "id",required = true) Integer id,String name){ //required true  表示必须 没有会400 错误
//
        return "/ss.html";//model.html 中的model 数据绑定之类的。
    }
    @RequestMapping(value = "/javabean")
    @ResponseBody
    public String javabean(User name){ //required true  表示必须 没有会400 错误
//
        return "/ss.html";//model.html 中的model 数据绑定之类的。
    }

    @RequestMapping(value = "/JSON")
    @ResponseBody
    public String SAVEORDRBYJSON(@RequestBody User user){ //RequestBody的内容json??? 转为javabean
//
        return "/ss.html";//model.html 中的model 数据绑定之类的。
    }

    @RequestMapping(value = "/file")
    @ResponseBody
    public String handleFormUpload(String filename, MultipartFile file) throws IOException { //RequestBody的内容json??? 转为javabean
file.getInputStream();
        return "/sucess.html";//model.html 中的model 数据绑定之类的。
    }
//    InitBinder 可以自定义。将htpp参数 绑定到javaBean 中。

//    验证框架 jsr-303标准
/*
* @Null
* size
* min
* pattern
* 可以作用于javabean pojo 之中。
* 但会有时候为空,有时候又不能为空。可以使用group 加以区分。如下 
* 定义两个接口
* class A{
* interface add();
* interface update():
*
* @nonull(grooups={add.class})
* @nonull(grooups={update.class})
* Long id;
* }
* 当上下文不同时,校验效果不同。
* @RequestMapping(value = "/JSON")
@ResponseBody
public String addword(@Validated({A.add.class}) User user, BindingResult result){ //指定 为A类型
result.hasErrors();//判断绑定成功与否
    return "/ss.html";//model.html 中的model 数据绑定之类的。
}
* 当然你可以自己定义检验规则。
* */


//    拦截器
//    addinterceptors可以设置多个拦截器
//    自定义一个类实现handleinterceptor接口 来处理拦截
//     addinterceptors(你自定义的类实例化)。addpathpatterns(拦截的路径 )

//    addCorsMappings 来实现跨域问题
//    json的处理  springboot 内置了jackjson

//    注意 redirect forward 两个是不同的,forward 可以链式处理。redirect 是发两次http的。


}
//还要错误处理
    @Controller
class  ErrorController extends AbstractErrorController{
 Log    log= (Log) LogFactory.getLog(ErrorController.class);
@Autowired
    ObjectMapper objectMapper;
    public ErrorController(ErrorAttributes errorAttributes) {
        super(errorAttributes);
    }
@RequestMapping("error")
@ResponseBody
public String error(){
//        处理异常

        return "erroeee";
}

    @Override
    public String getErrorPath() {
        return null;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值