获取枚举并发送枚举值

时间:2016-05-15 14:57:55

标签: javascript java spring

我使用spring,spring restcontroller,我有一个Java的枚举。

public enum PaymentModeEnum {
    CASH, DEBIT, CHECK, CREDITCARD;
}

如何在javascript中获取枚举值并将枚举值发送给java?

3 个答案:

答案 0 :(得分:1)

如果您尝试使用Javascript REST调用Spring API来设置/获取枚举值 -

  • 可以使用路径变量或查询字符串设置枚举名称。下面的示例是查询字符串。 //https://localhost:8444/getByEnumVal?enumVal1=CASH @RequestMapping(value = "/getByEnumVal", method = RequestMethod.GET) public String setEnum( @RequestParam(value="enumVal1", required=false) String enumVal1) { Service.methodcall(enumVal1); ... }
  • 枚举值可以直接返回JSON,也可以在POJO中设置 @RequestMapping(value = "/getEnumVal", method = RequestMethod.GET) public String getEnumVal() { return PaymentModeEnum.CASH; }

答案 1 :(得分:0)

从你的问题我假设你有一个前端使用一些javascript调用用Java编写的REST端点,使用Spring。 我不知道如何在javascript和Java之间共享枚举(它们是不同的语言),但您可以发送其序数值或枚举值的名称。我会选择后者。

这样您就可以将其作为端点中的查询参数。像这样:

@RequestMapping(
    path = some/path
    method = GET)
public SomeTypeAsResponse method(@RequestParam(name = "payment_mode") PaymentModeEnum paymentMode) {
    ...
}

答案 2 :(得分:0)

1.在JavaScript中提取Enum做类似下面的事情:

var enumvar = document.inputId.Packages.com.MyClass$MyEnumYesNo.YES

2.要将Enum从Javscript发送到RestController,直接将其作为String传递,然后将其作为Enum映射到Controller中的方法输入参数。