Некоторые входные данные не заполнены/не выбраны в форме редактирования.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Некоторые входные данные не заполнены/не выбраны в форме редактирования.

Сообщение Anonymous »

Я создаю форму редактирования для проекта Spring Boot. Я пытаюсь заполнить данные формы из полученного листинга с помощью этого метода контроллера GET:

Код: Выделить всё

@GetMapping("/{id}/izmena")
public String update(@PathVariable int id, Model model) {
Listing listing = listingServ.findById(id);
ListingFormDTO listingFormDTO = new ListingFormDTO();

listingFormDTO.setBuilding(buildingServ.toDTO(listing.getApartment().getBuilding()));
listingFormDTO.setItems(itemServ.toIds(listing.getApartment().getItems()));
listingFormDTO.setApartment(apartmentServ.toDTO(listing.getApartment()));
listingFormDTO.setTerms(termsServ.toDTO(listing.getTerms()));
listingFormDTO.setListing(listingServ.toDTO(listing));

model.addAttribute("listing", listing); // for title and heading
model.addAttribute("listingFormDTO", listingFormDTO); // for form
model.addAttribute("allItems", itemServ.findAll());
return "listings/update.html";
}
Форма:

Код: Выделить всё





Stvari:









Useljiv:






Я отправляю данные экземпляров List иTermsDTO, которые вложены в ListingFormDTO:

Код: Выделить всё

@Data
public class ListingFormDTO {
private BuildingDTO building = BuildingDTO.builder().build();
private ApartmentDTO apartment = ApartmentDTO.builder().build();
private List items = new ArrayList();
private TermsDTO terms = TermsDTO.builder().build();
private ListingDTO listing = ListingDTO.builder().build();
}

@Builder
@Data
public class TermsDTO {
private int id;
private LocalDate dateAvailable;
private boolean deposit;
private boolean forStudents;
private boolean forWorkers;
private boolean smokingAllowed;
private boolean petsAllowed;
}
Элементы преобразуются в их идентификаторы, а термины преобразуются в DTO:

Код: Выделить всё

@Service
public class ItemServiceImpl implements ItemService {
// ...
@Override
public List toIds(List items) {
return items.stream().map(item -> item.getId()).toList();
}
}

@Service
public class TermsServiceImpl implements TermsService {
// ...
@Override
public TermsDTO toDTO(Terms terms) {
return termsMapper.toDTO(terms);
}
}

Код: Выделить всё

dateВвод 
не заполняется и элементы не выбираются. Я проверил термины в контроллере, и они не равны нулю:

Код: Выделить всё

System.out.println("Listing.Terms.DateAvailable: " + listing.getTerms().getDateAvailable()); // Listing.Terms.DateAvailable: 2025-06-03
System.out.println("ListingFormDTO.Terms.DateAvailable: " + listingFormDTO.getTerms().getDateAvailable()); // ListingFormDTO.Terms.DateAvailable: 2025-06-03
Можно ли это исправить?


Подробнее здесь: https://stackoverflow.com/questions/796 ... -edit-form
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»