Код: Выделить всё
@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";
}
< /code>
Форма: < /p>
Stvari:
Useljiv:
Код: Выделить всё
@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;
}
< /code>
Элементы преобразуются в их идентификаторы, а термины преобразуются в DTOS: < /p>
@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);
}
}
@Service
public class TermsServiceImpl implements TermsService {
// ...
@Override
public TermsDTO toDTO(Terms terms) {
return termsMapper.toDTO(terms);
}
}
< /code>
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
< /code>
Is there a way to fix this?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -edit-form