从 JavaScript 检索 thymeleaf 对象值
Retrieve thymeleaf object value from JavaScript
我有一个简单的 thymeleaf 模板从控制器获取对象,在该模板中我有 select 以及来自控制器的选项作为 array/list,想要访问 selected 选项的值.但是我从 JavaScript
获取内存引用作为字符串
控制器:
modelAndView.addObject("banks",screenDetail.getBanks().toArray());
HTML:
<select id="chooseBank" name="bankId" style="width:100%" class="de-intl-select" onchange="handleBank()">
<option value=""></option>
<option th:each="bank:${banks}" th:text="${bank.name}"
th:value="${bank}">
</option>
</select>
Javascript:
function handleBank()
{
var chooseBankField = document.getElementById('chooseBank');
var bank = chooseBankField.options[chooseBankField.selectedIndex].value;
console.log("PRINT: "+ bank);
console.log("PRINT: "+ bank.id);
}
首先将对象引用打印为 sting,即 com.test.Bank@L1232142
第二行打印 undefined.
注意:Bank 是 pojo,包含 id、name、logo 等字段
我要去哪里绞尽脑汁?
在 th:value
中使用 ${bank.value} 或在银行 class 中覆盖 toString()
。你得到的是toString()
方法默认实现的结果。
我有一个简单的 thymeleaf 模板从控制器获取对象,在该模板中我有 select 以及来自控制器的选项作为 array/list,想要访问 selected 选项的值.但是我从 JavaScript
获取内存引用作为字符串控制器:
modelAndView.addObject("banks",screenDetail.getBanks().toArray());
HTML:
<select id="chooseBank" name="bankId" style="width:100%" class="de-intl-select" onchange="handleBank()">
<option value=""></option>
<option th:each="bank:${banks}" th:text="${bank.name}"
th:value="${bank}">
</option>
</select>
Javascript:
function handleBank()
{
var chooseBankField = document.getElementById('chooseBank');
var bank = chooseBankField.options[chooseBankField.selectedIndex].value;
console.log("PRINT: "+ bank);
console.log("PRINT: "+ bank.id);
}
首先将对象引用打印为 sting,即 com.test.Bank@L1232142 第二行打印 undefined.
注意:Bank 是 pojo,包含 id、name、logo 等字段
我要去哪里绞尽脑汁?
在 th:value
中使用 ${bank.value} 或在银行 class 中覆盖 toString()
。你得到的是toString()
方法默认实现的结果。