Значение по умолчанию с thymleaf в выпадающем списке - PullRequest
0 голосов
/ 31 октября 2018

У меня проблема с thymleaf. У меня есть форма со списком и некоторые поля. Я хочу поместить значение по умолчанию в выпадающий список, и предложение «выбрано» не работает для меня.

Код такой:

<select class="dsp-inline form-control" th:field="*{tipoDocumento}" required="required" th:disabled="${permisoXestion == false}">
      <option value="" th:text="#{select.option.default}"> </option>
      <option th:each="row : ${tipoDocumento}" th:value="${row}" th:text="#{${row.value}}" th:selected="#{${row==2}}"></option>
</select>

Где "tipoDocumento" - это перечисление с двумя значениями:

public enum TipoDocumento {
 PUBLICO("documento.tipo.publico"),
 PRIVADO("documento.tipo.privado");

private String property;

private String value;

private TipoDocumento(String property) {

    this(property, null);

    }

private TipoDocumento(String value, String property) {
   this.value = value;
   this.property = property;

}

public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}

public String getProperty() {
    return property;
}

public void setProperty(String property) {
    this.property = property;
}
}

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

если вы используете th: selected, вы не можете использовать th: field. Вы должны заменить его атрибутом имени. Итак, вы можете заменить

<select class="dsp-inline form-control" th:field="*{tipoDocumento}" required="required" th:disabled="${permisoXestion == false}">

с

 <select class="dsp-inline form-control" name="tipoDocumento" required="required" th:disabled="${permisoXestion == false}">

Также условие выбора: выбрано Вы можете заменить

th:selected="#{${row==2}}"

с

th:selected="${row==2}"
0 голосов
/ 31 октября 2018

Выбранный тег должен работать. Помните, что это нужно добавить как selected="selected". Я использовал его на нескольких выборках, и он всегда работает. Кроме того, в вашем th:each вам нужно удалить элемент th:selected="#{${row==2}}", иначе ваш первый вариант не будет выбранным по умолчанию.

<select class="dsp-inline form-control" required="required" th:disabled="${permisoXestion == false}">
      <option value="" th:text="#{select.option.default}"></option>
      <option th:each="row, iter : ${tipoDocumento}" th:value="${row}" th:text="#{${row.value}}" th:selected="${iter.count eq 2} ? 'selected' : 'false'"></option>
</select>
...