Показать объект и список объектов - PullRequest
0 голосов
/ 10 мая 2018

Я использую пружинный ботинок с тимелией 3

Я пытаюсь отобразить бин

В моем контроллере у меня есть

public String getNewCarsTemplate(Model model) {
    model.addAttribute("cars", new Cars());
}       

В автомобилях у меня

@OneToOne
private Cities cities;  // field id and name

@OneToMany(mappedBy = "car")
private List<Locations> locations = new ArrayList<>();

В моем местонахождении

private Integer id;

private String name;

@ManyToOne
private Suppliers supplier;

В моем фрагменте тимелина

<form id="carsForm" action="#" th:action="@{/template/new/cars}" th:object="${cars}" th:method="post">
    ...
    <input type="hidden" th:field="*{cities.id}" > 
   <input id="carsCities" class="form-control js-typeahead" type="search" placeholder="Type partial value" th:field="*{cities.name}" autocomplete="off" >
    ...
    <table id="locationsTable" class="table table-striped table-hover responsive">
        <thead>
            <tr>
                <th th:text="#{name}">Name</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="car, stat : ${cars}">
                <td> 
                    <input type="hidden" th:id="${'locationId-'+stat.index}"  th:field="*{car.locations[__${stat.index}__].id}" />
                    <input type="text" class="form-control" th:id="${'locationName-'+stat.index}" th:placeholder="#{name.placeholder}" placeholder="Name" th:field="*{car.locations[__${stat.index}__].name}" />
                </td>
                <td class="align-middle"> <i class="fas fa-trash-alt"></i></td>
            </tr>
        </tbody>
    </table>

</form>

Когда я пытаюсь отобразить этот фрагмент, я получаю

org.attoparser.ParseException: исключение, оценивающее выражение SpringEL: "towns.id", вызванное: org.springframework.expression.spel.SpelEvaluationException: EL1008E: Не удается найти свойство или поле 'id' для объекта типа 'java.util.ArrayList'- может быть не публично или недействительно?

1 Ответ

0 голосов
/ 14 мая 2018

Не могли бы вы попробовать заменить

<input type="hidden" th:field="*{cities.id}" > 

на

<input type="hidden" th:field="*{cities?.id}" > 

и сообщить мне, работает ли это для вас.'?'оператор решит проблему, заключающуюся в том, что в новом объекте Cars () города имеют значение null

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...