JSF SelectOneRadio PrimeFaces javax.el.PropertyNotFoundException: цель недоступна - PullRequest
0 голосов
/ 12 декабря 2018

Когда я вставляю это в мой xhtml, я получаю javax.el.PropertyNotFoundException: Target Unreachable, идентификатор 'telefonbuch' разрешен в null

            <h3>Auswahl</h3>
            <h1:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5">
            <p:outputLabel for="geschaeftsstelle" value="Geschäftsstelle:" />
            <p:selectOneRadio id="geschaeftsstelle" value="#{telefonbuch.geschaeftsstelle}"  layout="grid" columns="3">
            <f:selectItems value="#{telefonbuch.geschaeftsstellen}" var="c" itemLabel="#{geschaeftsstelle}" itemValue="#{geschaeftsstelle}"/>
            </p:selectOneRadio>
            </h1:panelGrid>

Мой класс модели выглядит следующим образом:

@Data
@Entity
public class Telefonbuch {
    @PostConstruct
    public void init() {
        geschaeftsstellen = new ArrayList<String>();
        geschaeftsstellen.add("Dortmund");
        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 String getGeschaeftsstelle() {
        return geschaeftsstelle;
    }

    public void setGeschaeftsstelle(String geschaeftsstelle) {
        this.geschaeftsstelle = geschaeftsstelle;
    }

    public List<String> getGeschaeftsstellen() {
        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; 

    protected Telefonbuch() {
    }

    public Telefonbuch(String vorname, String nachname, String telefonnummer, String handynummer) {
        this.vorname = vorname;
        this.nachname = nachname;
        this.telefonnummer = telefonnummer;
        this.handynummer = handynummer;
    }

Я не знаю, в чем проблема.Кнопки не будут показаны.Просто заголовок есть.Нет выбора.

1 Ответ

0 голосов
/ 12 декабря 2018

Просто очистите ваш проект, и он должен работать нормально.

Я не знаю, является ли это вашим случаем, но всякий раз, когда у меня возникает похожая проблема, очистка проекта и перезагрузка сервера решают ее для меня.

РЕДАКТИРОВАТЬ:

Я буду предполагать, что @Data и @Entity являются действительными идентификаторами в этом случае (потому что я всегда использую @ManagedBean, и позже сохраню его в некотором классе DTO.

Такжея думаю, что эта строка:

<f:selectItems value="#{telefonbuch.geschaeftsstellen}" var="c" itemLabel="#{geschaeftsstelle}" itemValue="#{geschaeftsstelle}"/>

должна выглядеть так:

<f:selectItems value="#{telefonbuch.geschaeftsstellen}" var="c" itemLabel="#{c.geschaeftsstelle}" itemValue="#{c.geschaeftsstelle}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...