如何在Spring Boot应用程序中使用JavaScript连接Enum
我是JavaScript的初学者,现在我面临这样的问题。 我有一个枚举如何在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
@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})];