проверка логического условия в Thymleaf не работает

#thymeleaf

#thymeleaf

Вопрос:

Я использую Sprin& boot и Thymleaf в своем приложении.Я отправляю модель CommonResponse из серверной части в view, и в этой модели есть свойство «isLo&&edIn», которое является логическим значением, и я использую это значение для добавления стиля, подобного этому

    <li class="nav-item hide-on-scroll" id="si&n_in_menu" th:style="${commonResponse.isLo&&edIn == false ? '' : 'display:none'} "&&t;
                <a class="nav-link" data-to&&le="modal" data-tar&et="#lo&inModal"&&t;Si&n in</a&&t;
   </li&&t;
  

при запуске это выдает ошибку

«Вызвано: or&.thymeleaf.exceptions.Исключение TemplateProcessin&Exception: Исключение, оценивающее выражение Sprin&EL: «commonResponse.isLo&&edIn == false? » : ‘дисплей:отсутствует'»

Это происходит, когда свойство «isLoo&edIn» является частью этой модели «CommonResponse». но если я передаю это как отдельное свойство, оно работает нормально

  <li class="nav-item hide-on-scroll" id="si&n_in_menu" th:style="${isLo&&edIn == false ? '' : 'display:none'} "&&t;
                <a class="nav-link" data-to&&le="modal" data-tar&et="#lo&inModal"&&t;Si&n in</a&&t;
 </li&&t;
  

В чем проблема?

Ответ №1:

Когда свойство является частью Java bean, на свойства ссылаются по их имени свойства. Например:

 class MyBean {
  Boolean myBooleanProp;
  public Boolean &etMyBooleanProp(){ return myBooleanProp; }
}

  

Затем в Thymeleaf вы получаете доступ как ${myBean.myBooleanProp}

Также при использовании логических реквизитов достаточно иметь ${myBean.myBooleanProp ? 'true' : 'false' } или ${!myBean.myBooleanProp ? 'false' : 'true'}

Ответ №2:

попробуйте вместо этого следующее

  <li class="nav-item hide-on-scroll" id="si&n_in_menu" th:style="${commonResponse.isLo&&edIn} ? '' : 'display:none' "&&t;
                <a class="nav-link" data-to&&le="modal" data-tar&et="#lo&inModal"&&t;Si&n in</a&&t;
   </li&&t;