Генерация типа ввода программно в Thymeleaf и Spring - PullRequest
0 голосов
/ 01 октября 2018

У меня есть требование, в котором мне нужно идентифицировать тип ввода формы на основе значения компонента.

Элементный компонент имеет имя свойства, метку, тип, обязательный.

Если значение типа «text», на странице должно отображаться <input type="text">.

Если type = «File», на странице должно отображаться <input type="file">.

My Bean:

    public class Element {
        private String name;
        private String label;
        private String type;
        private String mandatory;
        private String value;
    }

    Config JSON:

    {"input": [
        {
          "name": "file1",
          "label": "File 1",
          "type": "File",
          "mandatory": "true"
        },
        {
          "name": "Indicator",
          "label": "Indicator",
          "type": "text",
          "mandatory": "true"
        }
      ]}

Контроллер прочитает JSON и заполнит список объектов-элементов.

В пользовательском интерфейсе, когда я пытаюсь добавить приведенный ниже код, он не генерируеттип ввода, как и ожидалось.

Я могу видеть все значения, когда использую только приведенный ниже код:

<div th:each="element: ${accelerator_input}">
<p th:text="${element.label}" />

Но когда я добавляю тип ввода в мой код, он нене работает.

    <div th:each="element: ${accelerator_input}">
                    <p th:text="${element.label}" />
                    <input type="${element.type}"  name=${element.name}
                        th:field="${element.value}" />
    </div>

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 02 октября 2018

Если вы хотите, чтобы Thymeleaf обрабатывал ваши атрибуты, они должны иметь префикс th:.

<div th:each="element: ${accelerator_input}">
  <p th:text="${element.label}" />
  <input th:type="${element.type}" th:name="${element.name}" th:field="${element.value}" />
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...