我的项目中有jsf / primeface表单组件。还有db表描述了应该需要或隐藏哪个字段。此表由另一个系统(与java无关)使用,因此我的项目也应该使用该数据库表。
问题是那些字段及其id在db中被描述为数字,在我的项目中,jsf / primefaces组件具有人类可读的id。例如,db表中的“name”字段有id = 1,required = 0,hidden = 1,而在xhtml中我有:
<p:inputtext id="idName" required="false" rendered="true"...>
是否有任何方法可以轻松地将idName
组件映射到数据库条目但不更改数据库表结构?
答案 0 :(得分:2)
只需创建一个代表该字段的实体:
public class Field {
private Long id;
private boolean required;
private boolean hidden;
// ...
}
并在您的视图中使用它,如下所示:
<p:inputText value="#{bean.values[field.id]}" required="#{field.required}" rendered="#{not field.hidden}" />
#{bean.values}
引用Map<Long, Object>
。