2016-05-15 182 views
1

我使用spring,spring restcontroller,我在Java中有一个枚举。获取枚举并发送枚举值

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

如何获取JavaScript中的枚举值并将枚举值发送到java?

+0

传设置它在POJO像'CASH',并在其余控制器'方法字符串返回为JSON(@RequestParam PaymentModeEnum枚举){} ' –

回答

0

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

这样您就可以将它作为查询参数提供给您的端点。像这样:

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

1.对于在JavaScript中提取枚举做类似如下:

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

2.对于从Javscript发送到枚举RestController,直接把它作为一个字符串,然后把它映射为Controller中的方法输入参数中的Enum。

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); ... }
  • 枚举值可直接,或通过 @RequestMapping(value = "/getEnumVal", method = RequestMethod.GET) public String getEnumVal() { return PaymentModeEnum.CASH; }