Jsf 如何使用PostConstruct为addEntry设置列表

Jsf 如何使用PostConstruct为addEntry设置列表,jsf,annotations,postconstruct,Jsf,Annotations,Postconstruct,直到现在,我在getter上添加了我想在列表中包含的内容,这毫无意义,在添加新条目时,会导致数据库混乱 我的模型到现在为止: @Data @Entity public class Telefonbuch { /*@PostConstruct public void init() { //geschaeftsstellen = new ArrayList<String>(); geschaeftsstellen.add("Dortmund

直到现在,我在getter上添加了我想在列表中包含的内容,这毫无意义,在添加新条目时,会导致数据库混乱

我的模型到现在为止:

@Data
@Entity
public class Telefonbuch {
    /*@PostConstruct
    public void init() {
        //geschaeftsstellen = new ArrayList<String>();
        geschaeftsstellen.add("Dortmund");
        System.out.println("TEEEEEEEEEEEST");
        geschaeftsstellen.add("Essen");
        geschaeftsstellen.add("Stralsund");
        geschaeftsstellen.add("Stuttgart");
        geschaeftsstellen.add("Zürich");
        geschaeftsstellen.add("Istanbul");
        geschaeftsstellen.add("Köln");
        geschaeftsstellen.add("Aachen");
        geschaeftsstellen.add("Berlin");
    }*/

    public List<String> getGeschaeftsstellen() {
        geschaeftsstellen = new ArrayList<String>();
        geschaeftsstellen.add("Dortmund");
        System.out.println("TEEEEEEEEEEEST");
        geschaeftsstellen.add("Essen");
        geschaeftsstellen.add("Stralsund");
        geschaeftsstellen.add("Stuttgart");
        geschaeftsstellen.add("Zürich");
        geschaeftsstellen.add("Istanbul");
        geschaeftsstellen.add("Köln");
        geschaeftsstellen.add("Aachen");
        geschaeftsstellen.add("Berlin");

        //ArrayList<String> a = new ArrayList<String>();
        //a.add("Test");
        return geschaeftsstellen;

    }

    public void setGeschaeftsstellen(List<String> geschaeftsstellen) {
        this.geschaeftsstellen = geschaeftsstellen;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column
    private String vorname;
    @Column
    private String nachname;
    @Column
    private String telefonnummer;
    @Column
    private String handynummer;
    @Column
    private String geschaeftsstelle;

    @Column
    @ElementCollection
    private List<String> geschaeftsstellen; 

我收到了您的问题,您要求提供一个列表,其中包含可用于selectOneRadio组件的选项,以及为什么
@PostConstruct
不起作用
@PostConstruct
被JPA或其他持久性框架忽略-据我所知,它可用于CDI/托管bean

将其移动到您的
TelefonbuchList
bean:

public class TelefonbuchListController {
    @PostConstruct
    public void init() {
        geschaeftsstellen = new ArrayList<String>();
        geschaeftsstellen.add("Dortmund");
        geschaeftsstellen.add("Essen");
       ...
    }

    public List<String> getGeschaeftsstellen() {
        return geschaeftsstellen;
    }
}
公共类电话控制器{
@施工后
公共void init(){
geschaeftstellen=新数组列表();
添加(“多特蒙德”);
添加(“埃森”);
...
}
公共列表getgeschaeftstellen(){
返回Geschaeftststellen;
}
}

您可以使用此列表填写selectOneRadio组件选择项。

Telefonbuch
是一个实体类,通过JPA或类似方式持久化
@PostConstruct
是用于托管bean(不是实体类)上的初始值设定方法的注释。将
init()
移动到您未提供源代码的
telefonbuchList
bean。在
getgeschaeftstellen()
中,仅返回由init()方法准备的列表。@Selaron您的意思是我在init中放入以下内容:list geschaeftstellen=new ArrayList();然后添加项目,然后Telefonbuch Telefonbuch=newtelefonbuch();然后是telefonbuch.setgeschaeftstellen(geschaeftstellen);它不会让我看到任何东西。我加上了我没有意识到的电话号码。这是错误的控制器。它只会是遥控器。我的名字不好。但它是有效的。非常感谢你!
public class TelefonbuchListController {
    @PostConstruct
    public void init() {
        geschaeftsstellen = new ArrayList<String>();
        geschaeftsstellen.add("Dortmund");
        geschaeftsstellen.add("Essen");
       ...
    }

    public List<String> getGeschaeftsstellen() {
        return geschaeftsstellen;
    }
}