У меня есть структура:
public class Tabl {
String tableName;
List<String> tableColumns;
public Tabl() {
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public List<String> getTableColumns() {
return tableColumns;
}
public void setTableColumns(List<String> tableColumns) {
this.tableColumns = tableColumns;
}
}
Эта форма, так сказать, динамически эмулирует таблицу.У меня есть много простых таблиц с 1-2 столбцами, кроме идентификатора.У меня нет явного назначения полей, так как у меня есть только один динамический объект для их хранения.Суть моего вопроса в том, что я хочу передать этот объект tabl и подготовить форму Spring в jsp следующим образом (я передаю tableName из другого JSP, и все в порядке:
@RequestMapping(value = "/addnew/{tableName}")
public String insertForm(@PathVariable("tableName") String tableName, Model m) {
Tabl tabl = new Tabl();
tabl.setTableName(tableName);
List<String> cols = spravochnikService.selectCols(tableName); //prepares structure by getting column names of the needed table (except the id): for example tableName=Employee, cols are firstname and lastname
tabl.setTableColumns(cols);
m.addAttribute("command", tabl);
return "insert_form"
}
insert_form.jsp:
<f:form action="${url_csave}">
<table border="1">
<c:forEach var="col" items="${command.tableColumns}">
<tr>
<td>
<c:out value="col" />
<f:input path="col" />
</td>
</tr>
</c:forEach>
<tr>
<td colspan="2" align="right">
<button>Save</button>
</td>
</tr>
</table>
</f:form>
Когда я пытаюсь это сделать, он говорит недопустимое свойство "firstname" и недопустимый метод getter. У меня, конечно, не может быть явного getter, поскольку все мои таблицы находятся в одной динамической сущности.заставить Spring Forms понять структуру?