如何存储字符但显示字符串

时间:2019-01-23 12:57:06

标签: jsf

可悲的是我不得不问这个问题,但是我如何在我的Postgres DB中存储一个char,但是显示String来选择值。 我正在用JSF创建一个Web应用程序。

所以我的.xhtml:

<p:outputLabel for="gender" value="Geschlecht:" />
<p:selectOneMenu id="gender" value="#{telefonbuchController.telefonbuch.gender}" style="width:125px">
    <f:selectItem itemLabel="Auswählen" itemValue="" />
    <f:selectItems value="#{telefonbuchController.genderList}" var="c" itemLabel="#{gender}" itemValue="#{gender}"/>
</p:selectOneMenu>

型号:

@Column
private char gender;

在表单的控制器中,我创建了一个男性和女性字符串列表,并使用PostConstruct对其进行初始化。

private List<String> geschaeftsstellen;

This

在这里,您将看到它的外观。我用一个字符串实现了它,但是我只想在数据库中存储'm'和'f'而不是整个字符串。

1 个答案:

答案 0 :(得分:0)

像这样实现它:

public enum Gender {
MALE('m'),
FEMALE('f')
;

private char shortGender;

public Gender (char shortGender) {
    this.shortGender = shortGender;
}

public char getShortGender() {
    return shortGender;
}

} 

在您的模板中,itemLabelitemValue使用不同的值,即:

itemLabel="#{gender}" itemValue="#{gender.shortGender}"