JSF Fehler bei Zugriff auf f:attribute

Holy Diver

Mitglied
Hallo,
ich habe ein f:attribute in einer DropDown Liste, welches ich im Getter des aktuellen ausgewählten Eintrags verwende. Beim ersten Seitenaufruf funktioniert dies auch ohne Probleme, drückt man nun aber den Submit Button wird eine NullPointerException ausgelöst.

xhtml:
Java:
...
<t:dataTable value="#{bean.list1}" var="var1" rowIndexVar="r_index">
...
        <t:column><f:facet ...</f:facet>	
               <h:selectOneMenu class="print_ddm" value="#{bean.actualgr}">
                      <f:attribute name="actual_row" value="#{r_index}" />  
	              <f:selectItems value="#{groupAssignmentBean.hashmap1}" />
               </h:selectOneMenu></t:column>.....
</t:dataTable>
.....
Ausschnitt der Getter Methode:
Java:
...
public String getActualgr() {
		
	FacesContext context=FacesContext.getCurrentInstance();
	int id = (Integer)   context.getViewRoot().getCurrentComponent(context).getAttributes().get("actual_row");//Hier tritt der Fehler auf
		
	....
	}
...
Schon mal Danke im Voraus
 
Da siehst Du, dass es i.d.R. keine gute Idee ist, soviele Methodenaufrufe aneinander zu hängen.
Java:
context.getViewRoot().getCurrentComponent(context).getAttributes().get("actual_row")
Irgend eine der Methoden lievert null und der Folgeaufruf schlägt dann fehl. Wo das passiert sieht man leider nicht. Also erstmal umschreiben und Zwischenvariablen benutzen.

Zur Ursache kann ich nur raten. Ich vermute mal, dass Du irdend eine Variable im Request-Scope hälst. Beim ersten Aufruf geht das, weil sie noch gesetzt ist. Beim Submit wird dann zunächst ein Post und ein Redirect (also zwei Requests) abgesetzt. Der Redirect-Request setzt die Variable im Request-Scope nicht richtig und Du erhälst eine NullPointer.
 
Irgend eine der Methoden lievert null und der Folgeaufruf schlägt dann fehl. Wo das passiert sieht man leider nicht.
Der Teil, welcher null zurückliefert, ist get("actual_row"). Wobei die Komponente ein SelectOneMenu ist und die einzige SelectOneMenu,welche ich auf dieser xhtml Seite habe ist die mit dem f:attribute.
Deswegen ist mir nicht klar, warum es nicht in den Attributen enthalten ist.


Zur Ursache kann ich nur raten. Ich vermute mal, dass Du irdend eine Variable im Request-Scope hälst. Beim ersten Aufruf geht das, weil sie noch gesetzt ist. Beim Submit wird dann zunächst ein Post und ein Redirect (also zwei Requests) abgesetzt. Der Redirect-Request setzt die Variable im Request-Scope nicht richtig und Du erhälst eine NullPointer.

Ich habe die Seite bereits mit einer ViewScoped und RequestScoped Bean getestet.Der Fehler tritt aber bei beiden auf. Wobei ich vermute dass der Fehler nicht in der Bean liegt.
 

Zurück
Oben