javax.el.PropretyNotWritableException: Die Klasse Artikel hat keine beschreibbare Eigenschaft 'id'

8

Ich habe einen Artikel DTO (Artikel.java; Codeauszüge)

%Vor%

Ich habe eine Ansichtsvorlage zum Bearbeiten des Artikels (edit_article.xhtml; Codeauszüge):

%Vor%

und ich habe eine View-Back-Bean (HqArticleView.java; Code-Auszüge):

%Vor%

Das Problem ist: Ich versuche auf die Ansicht zuzugreifen, die ich einen Fehler erhalte: Die Klasse Artikel hat keine beschreibbare Eigenschaft 'ID'. Alle anderen Felder aus dem Artikel werden korrekt verarbeitet, nur die ID ist ein Problem. Seltsam ist, wenn ich den ID-Getter und Setter des Article-Objekts innerhalb der Bean in:

umschlinge %Vor%

dann funktioniert es perfekt. Was vermisse ich?

    
rome 16.11.2013, 23:41
quelle

1 Antwort

18

Beim Prüfen des Eigenschaftstyps zum Lesen untersucht EL den Rückgabetyp des Getters:

%Vor%

Es ist also vom Typ Integer . Wenn EL den geänderten Wert schreiben muss, erwartet EL einen Setter vom gleichen Typ:

%Vor%

In der Klasse Article ist jedoch kein solcher Setter vorhanden. Stattdessen haben Sie einen Setter, der ein int übernimmt. Genau deswegen hat EL ein PropertyNotWritableException geworfen. Das bedeutet, dass kein passender Setter gefunden werden konnte, der genau den gleichen Typ hatte. Repariere es entsprechend, indem du Integer anstelle von int im Setter verwendest (oder in diesem speziellen Fall besser, indem du int anstelle von Integer im Getter verwendest).

Dass es funktionierte, als du das Modell im Controller explodierst (schlechte Praxis übrigens), ist, dass Getter und Setter einander angepasst haben.

    
BalusC 17.11.2013, 13:22
quelle

Tags und Links