我有一个需要根据bean值识别表单输入类型的要求。
元素bean具有属性名称,标签,类型和强制性。
如果类型值为“文本”,则<input type="text">
应该显示在页面上。
如果输入type =“ File”,<input type="file">
应该显示在页面上。
我的豆子:
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>
如何解决此问题?
答案 0 :(得分:0)
如果您希望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>