在使用 Java 1.8 的 Spring Boot 项目中,我很难在正确显示值的控制器与似乎无法正确接收值的前端部分之间进行正确通信。
我在控制器中有以下端点:
@GetMapping(value = {"/test"})
public String test(Model model) {
List<String> list = getFieldNamesExcluding(Arrays.asList("title", "type", "link", "referenceDates"));
model.addAttribute("inputs", list);
return "test";
}
内容是一个字符串,表示字符串数组(例如“[hello,how,are,you]”) 我通过调试检查其值是正确的。
模型传递到的html页面是:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Test Page</title>
</head>
<body>
<button type="button" th:text="Press here" onclick="start()"></button>
<script th:inline="javascript">
function start() {
/*<![CDATA[*/
var inputs= /*[[${inputs}]]*/ 'default';
console.log("inputs: ",inputs);
/*]]>*/
}
</script>
</body>
</html>
但是这样我就得到:
message: null
。
我还尝试使用 JSON.parse() 接收值并使用隐藏输入:
<input type=“hidden” id=“inputs” th:value=“${inputs}” />
,但结果是空格。
PS:我在pom中使用2.7.18版本的Spring Boot,以包含Thymeleaf,
我使用正在使用的 html 创建了一个小测试,似乎
button
标签存在问题,导致 thymeleaf 处理失败。
这个
th:text="Press here"
不是有效的 thymeleaf 表达式。
使用下面的按钮标签应该没问题。
<button type="button" onclick="start()">Press Here</button>