Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Spring Boot应用程序中使用JavaScript连接Enum_Javascript_Java_Json_Spring Boot - Fatal编程技术网

如何在Spring Boot应用程序中使用JavaScript连接Enum

如何在Spring Boot应用程序中使用JavaScript连接Enum,javascript,java,json,spring-boot,Javascript,Java,Json,Spring Boot,我是JavaScript的初学者,现在我面临这样的问题。 我有一个枚举 @JsonFormat(shape = Shape.OBJECT) public enum FinancialEventType { Income("Income"), Expense("Expense"); private String code; private FinancialEventType(String code) { this.co

我是JavaScript的初学者,现在我面临这样的问题。 我有一个枚举

@JsonFormat(shape = Shape.OBJECT)
public enum FinancialEventType {

  Income("Income"),
  Expense("Expense");
  
  private String code;
  
  private FinancialEventType(String code) {
    this.code = code;
  }
  
  @JsonValue
  public String getCode() {
    return this.code;
  }
}
我希望通过ModelAttribute(作为对象和JSON)将枚举传递给视图

在我看来,我可以得到这些属性

  <script>
    var documentDate = "[[${documentDate}]]";
    var eventTypes = "[[${eventTypes}]]";
    var data1 = "[[${data1}]]";
    console.log("data1: " + data1);
  </script>
当我尝试通过JavaScript生成一个下拉元素时

//Create and append the options
    for (var i = 0; i < data1.length; i++) {
        var option = document.createElement("option");
        option.value = data1[i];
        option.text = data1[i];
        selectList.appendChild(option);
    }
    row.appendChild(cell);
//创建并附加选项
对于(变量i=0;i
生成的列表不是我想要的:

谢谢你的建议 Witold

更改此项:

var data1 = "[[${data1}]]";
为此:

var data1 = [(${data1})];
在Thymeleaf中使用“[[]]”相当于使用th:text,而Thymeleaf是对文本进行转义(这意味着,将符号“转换为HTML等价物”中的符号)。因此,使用“[()]”,这相当于th:utext

这只适用于Thymeleaf版本3,而不是版本2


来源:

正确的结果应该是
['Income','Expense']
?谢谢,但使用此语法脚本试图计算此表达式
var data1=“[“Income”,“Expense”]”导致:未捕获的SyntaxError:意外标识符,而不是
var data1=“['Income','Expense']”删除此处的双引号:“[(${data1})]”,并将其保留为这样[(${data1})]。这将留下VarData1=[“收入”,“费用”],这在JS中完全有效。我编辑了我的答案来纠正这个问题。在JS[“Income”,“Expense”]与['Income','Expense']一样有效顺便说一句,您在HTML select中收到的错误是因为您使用引号括住了数组。表达式“['Income','Expense']”是错误的,因为data1将是一个字符串。如果没有双引号,它将是一个数组。这就是为什么data1.length大约是20,并且您有很多选择,而它应该只有2。
var data1 = "[[${data1}]]";
var data1 = [(${data1})];