JSF - Ändern einer Zeile aus dataTable

321

Grünschnabel
Guten Abend,

habe ein Problem bei der Anzeige von Daten einer Zeile der dataTable auf einer zweiten Seite. Irgenwie funktioniert die

Weiterleitung nicht. In jeder Zeile der dataTable befindet sich ein commandButton, welcher nach der Auswahl einer Zeile die Daten

zum Ändern in einem inputText-Feld anzeigen soll, welche dann in die Datenbank gespeichert werden. Die Beans werden erfolgreich mit

Spring geladen. Nach dem Klick auf einen commandButton in einer Zeile werden die Properties zu meinem Objekt erfolgreich auf der

Konsole ausgegeben. Jedoch habe ich das Problem, dass ich nicht zur Anzeige auf der zweiten Seite komme, weil sich dieselbe Seite

erneut lädt, obwohl die Navigation korrekt angegeben wurde.

Anbei die *.jsp Seite:
<h:dataTable value="#{verwgebr.resultModel}" var="gebr"
captionStyle="font-size:0.95em; font-style:italic; style=width:250px;"
styleClass="dataTable">

<f:facet name="caption">
<h:eek:utputText value="Alle Gebrauchtwagen" />
</f:facet>

<h:column headerClass="columnHeader" footerClass="columnFooter">
<f:facet name="header">
<h:eek:utputText value="ID" />
</f:facet>

<h:eek:utputText value="#{gebr.fahrzeugID}" />
</h:column>
.
.
.
<h:column headerClass="columnHeader" footerClass="columnFooter">
<f:facet name="header">
<h:eek:utputText value="" />
</f:facet>

<h:commandButton value="Ändern" action="#{verwgebr.edit}"
styleClass="isub">
</h:commandButton>
</h:column>

</h:dataTable>
Anbei die Methode edit, welche nach Betätigen des commandButtons aufgerufen wird:
public void edit()
{
current = (Gebrauchtwagen) resultModel.getRowData();
currentCopy = new Gebrauchtwagen();

try {
BeanUtils.copyProperties(currentCopy, current);
System.out.println(current.getMarke());
System.out.println(current.getType());
System.out.println("---");
System.out.println(currentCopy.getMarke());
System.out.println(currentCopy.getType());
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
Weiters noch die Seite, auf der die Daten einer Zeile angezeigt werden:
<h:form>
.
.
.
<h:panelGrid columns="2" styleClass="panelGrid">

<h:eek:utputText value="Marke" />
<h:panelGroup>
<h:inputText id="kraftstoff" required="true"
value="#{verwgebr.currentCopy.marke}" />
<h:message for="kraftstoff" errorClass="errors" />
</h:panelGroup>
.
.
.
<h:commandButton value="Hinzufügen" action="#{gebrauchte.insert}"
styleClass="isub" />

</h:panelGrid>
</h:form>
Zu guter letzt noch die faces-config.xml:
<navigation-rule>
<from-outcome>/pages/*</from-outcome>
<navigation-case>
<from-action>#{verwgebr.edit}</from-action>
<to-view-id>/pages/change2.jsp</to-view-id>
</navigation-case>
</navigation-rule>
Vielen Dank für Eure Hilfe,

David
 

Neue Beiträge

Zurück