Как установить статус чекбоксов с информацией с сервера на jsp с помощью весенней загрузки? - PullRequest
0 голосов
/ 04 мая 2020

Я использую весеннюю загрузку и Jpa.
У меня есть два объекта со многими отношениями. Я могу добавить в базу данных, но когда я редактирую запись, мне нужно установить или снять флажок в зависимости от значения в базе данных.

Объект 1

public class EventAllotement {
    @Id
    @GeneratedValue
    private int idAllotement;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Temporal(TemporalType.DATE)
    private Date dateContractionAllotement;

    private String nomHotel;
    private String allotement;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Temporal(TemporalType.DATE)
    private Date dateRetroCessionAllotement;

    private String categorieHotel;
    private String capaciteChambre;
    private String capaciteSuite;

    @ManyToOne
    private Event event;

    @ManyToMany(mappedBy = "eventAllotements")
    private List<CategorieChambre> categorieChambres = new ArrayList<>();

Объект 2

@Entity
public class CategorieChambre {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int idCategorieChambre;
    private String designationCategorieChambre;

    @Transient
    private boolean selected;

    @ManyToMany
    @JoinTable(name = "CATEGORIE_CHAMBRE_EVENT_ALLOTEMENT", joinColumns = @JoinColumn(name = "ID_CATEGORIE_CHAMBRE"), inverseJoinColumns = @JoinColumn(name = "ID_EVENT_ALLOTEMENT"))
    private List<EventAllotement> eventAllotements = new ArrayList<>();`

Это контроллер

@RequestMapping(value = "/modifiereventallotement", method = RequestMethod.GET)
    public String afficherModifierDetailArticle(@RequestParam int idAllotement, ModelMap model) {

        List<CategorieChambre> categorieChambres = categorieChambreRepository.findAll();
        EventAllotement eventAllotement = eventAllotementRepository.findByIdAllotement(idAllotement);

        List<CategorieChambre> categorieChambreSelecteds = categorieChambreRepository
                .findCategorieChambreByEventAllotementId(idAllotement);

        List<CategorieChambre> categorieChambreNonSelecteds = new ArrayList<>(categorieChambres);
        categorieChambreNonSelecteds.removeAll(categorieChambreSelecteds);

        for (CategorieChambre categorieChambreSelected : categorieChambreSelecteds) {
            categorieChambreSelected.setSelected(true);

        }

        for (CategorieChambre categorieChambreNonSelected : categorieChambreNonSelecteds) {
            categorieChambreNonSelected.setSelected(false);

        }

        List<CategorieChambre> categorieChambreModifications = new ArrayList<>(categorieChambres);
        for (CategorieChambre categorieChambreModification : categorieChambreModifications) {
            System.out.println("Categorie chambre séléctionée et non selectionée" + categorieChambreModification);

        }

        model.put("eventAllotement", eventAllotement);
        model.put("categorieChambres", categorieChambreModifications);

        return "form_ajouter_event_allotement";
    }

Это страница JSP

<div class="col-md-12 col-sm-12 col-xs-12">
  <div class="col-md-3 col-sm-4 col-xs-12">
    <h4>Categorie Chambre</h4>
    <div class="form-group">
      <div class="checkbox col-md-12 col-sm-12 col-xs-12">
        <c:forEach items="${categorieChambres}" var="categorieChambre">
          <c:set var="isChecked" value="${categorieChambre.selected}"></c:set>
          <form:label path="categorieChambres" class="col-md-7 col-sm-12col-xs-12">
            ${categorieChambre.designationCategorieChambre}
          </form:label>
          <c:out value="${categorieChambre.selected}"></c:out>
          <c:choose>
            <c:when test="${categorieChambre.selected}">
              <form:checkbox path="categorieChambres" class="js-switch col-md-5 col-sm-12 col-xs-12" checked="checked"/>
            </c:when>
            <c:otherwise>
              <form:checkbox path="categorieChambres" class="js-switch  col-md-5 col-sm-12 col-xs-12" checked="checked" />
            </c:otherwise>
          </c:choose>
        </c:forEach>
      </div>
    </div>
  </div>
</div>

Состояние элемента флажка возвращается jsp как истинное и ложь, но я не могу связать это с флажком. Я получаю сообщение об ошибке, в котором говорится, что атрибут «значение» требуется при привязке к небулевым значениям. Буду признателен за любую оказанную помощь. Как вы, наверное, догадались, я довольно новичок во всем этом.

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