老师,为什么我在controller接收不到枚举类型的值呢

来源:4-10 对Enumeration的理解与扩展

慕莱坞8271573

2020-04-14 17:15:21

@Getter
@Setter
public class LoginParam {
   /**
    * 账号,如果是微信登录则装载code
    */
   @NotBlank(message = "{token.account}")
   private String account;
   private String password;

   private LoginType loginType;
}

@PostMapping
   public Map<String, String> getToken(@RequestBody @Validated LoginParam loginParam){

       String token=null;
       token=wxAuthenticationService.code2Session(loginParam.getAccount());
//        switch (loginParam.getLoginType()){
//            case USER_WX:{
//                token=wxAuthenticationService.code2Session(loginParam.getAccount());
//                break;
//            }
//            case USER_MAIL:{
//                break;
//            }
//            case USER_PHONE:{
//                break;
//            }
//            default:{
//                throw new NotFoundException(10003);
//            }
//        }
       Map<String,String> map=new HashMap<>();
       map.put("token",token);
       return map;
   }


public enum LoginType {

   USER_WX(0,"微信登录"),
   USER_MAIL(1,"邮箱登录"),
   USER_PHONE(2,"手机号码登录");

   private Integer value;

   LoginType(Integer value,String description){
       this.value=value;

   }
}



wx.request({

url: 'http://localhost:8888/v1/token',

method: 'POST',

data: {

account: res.code,

loginType: 0

},


写回答

3回答

一日看盡長安花

2020-05-28

#    property-naming-strategy: SNAKE_CASE

这个设置会将请求参数由aB转为a_b

0

Hahn_佩佩

2020-04-30

我记得7月老师把接口的参数从鸵锋设置成下划线。所以测试api的时候弄下划线法就可以了。比如loginType设置成为login_type

0

慕莱坞8271573

提问者

2020-04-14

经过几次测试

  1. 变量名为loginType无法接收到值,采用其它命名如:test,type可以正常接收到

  2. 枚举类设置value无效,前端传值仍需按照变量排序号传值,0,1,2

0

Java全栈工程师

从Java到全栈,开发带SKU的真实企业级电商项目(附赠整套UI框架,配套升级Vue3.0内容)

2074 学习 · 3056 问题

查看课程