【问题标题】:Get enum and send enum value获取枚举并发送枚举值
【发布时间】:2016-05-15 14:57:55
【问题描述】:

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

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

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

【问题讨论】:

  • 将它作为字符串传递给CASH,并在休息控制器method(@RequestParam PaymentModeEnum enum){}

标签: javascript java spring


【解决方案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; }

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      1.为了在 JavaScript 中提取枚举,请执行以下操作:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        • 1970-01-01
        • 2010-11-03
        • 1970-01-01
        • 2022-11-12
        相关资源
        最近更新 更多