【问题标题】:Retrieve thymeleaf object value from JavaScript从 JavaScript 中检索 thymeleaf 对象值
【发布时间】:2021-09-25 16:47:00
【问题描述】:

我有简单的百里香模板从控制器获取对象,在该模板中,我选择了来自控制器的选项作为数组/列表,想要访问所选选项的值。但我从 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 第二行打印未定义。

注意:银行是 pojo,包含 id、name、logo 等字段。

我要去哪里拧?

【问题讨论】:

  • 为什么是“java”标签? javascriptisnotjava.com
  • 您的代码 console.log("PRINT: "+ bakn.id); 中有错字。它应该是 bank 而不是 bakn
  • 是的,这是一个错字,但它在代码中不存在。

标签: javascript spring spring-mvc thymeleaf


【解决方案1】:

th:value 中使用 ${bank.value} 或在 Bank 类中覆盖 toString()。你得到的是toString()方法默认实现的结果。

【讨论】:

  • ${bank.value} 尝试访问以名称“value”定义的任何字段。所以它返回未定义。但是 toString() 方法听起来可能会奏效,不妨试一试。但我试图理解为什么不能仅仅从 JavaScript 访问这个对象?我也用过“
  • 是的,有一个返回 josn 的 toString 方法解决了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多