Thymeleaf-绑定在片段中不起作用

问题描述 投票:2回答:1

不要与this question混淆!

所以,我试图在Thymeleaf片段中传递一个bean,并将其属性绑定到某些字段。

即假设我有一个名为myFragment的片段:

<div th:fragment="myFragment(myBean)"> 
   <select class="selectpicker" th:field="${myBean.myProperty}">
        <option th:each="myProperty : ${myBean.myProperties}" th:value="${myProperty}" th:text="${myProperty}"></option>
    </select>
</div> 

然后像这样调用片段:

<div th:include="fragments/myFragment:: myFragment(myBean=${myBean})"> ... </div>

由于某些原因,它起作用,因为变量的名称和bean的名称是相同的(myBean)。但是,如果Bean的名称不同,即像这样:

<div th:include="fragments/myFragment:: myFragment(myBean=${someOtherBean})"> ... </div>

我得到一个例外:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'myBean' available as a request attribute

[对于th:textth:href等其他属性,一切正常,但是,如果我使用th:field属性(如果我尝试将属性绑定到某些特定字段),则会发生异常。在这种情况下如何正确执行绑定?

java spring thymeleaf
1个回答
1
投票

您是否可以尝试删除选择元素中的th:field="...",然后在th:selected="${<your_logic_when_is_selected>}"元素中添加<option>

© www.soinside.com 2019 - 2024. All rights reserved.