Hallo,
erster Beitrag und schon ein Problem.
Ich habe 2 JSF Seiten.
Eine dient zur Anzeige von sogenannten Ressorts in Form einer dataTable.
Die andere soll zum Editieren einzelner Ressorts genutzt werden.
Im Hintergrund liegt eine SessionScoped Bean die sowohl die Daten aus der Datenbank holt als auch die jeweilige Zeile zum Editieren entgegen nimmt.
Ich habe beim Aufbau der dataTable in jeder Zeile einen html commandLink mit einer actionMethode positioniert.
Leider funktioniert der Aufruf der Methode in der SessionScoped Bean nicht. Es wird die momentante Seite einfach nochmal erneut aufgerufen.
Durch einen Reload der Seite wird nur eine leere Tabelle anzeigt (weil ja die entsprechende Methode nicht nochmal aufgerufen wird)
Ich möchte aber das der Benutzer auf die zweite Seite weitergeleitet wird, wo dann die Daten der jeweils ausgewählten Zeile drinn stehen sollen.
Okay genug geredet, jetzt gibts Code.
Hier ein Ausschnitt meiner SessionScoped Backing Bean:
Soviel zur BackingBean.
Meine listRessort.xhtml sieht folgendermaßen aus :
Ich habe mich eigentlich strikt nach der Vorgehendweise von BalusC gehalten, der hier das was ich haben will sehr gut veranschaulicht.
Leider funktioniert es nicht so wie er es schildert.
Meine faces-config habe ich auch entsprechend angepasst:
Wenn ich beispielsweise einen commandLink außerhalb der dataTable platziere, dann klappt zumindestens die navigation.
Ich verzweifel langsam, versuche seit 2 Tagen das Problem zu lösen, doch bekomme es einfach nicht hin.
Über einen nützlichen Ratschlag würde ich mich freuen.
Liebe Grüße
glister
erster Beitrag und schon ein Problem.
Ich habe 2 JSF Seiten.
Eine dient zur Anzeige von sogenannten Ressorts in Form einer dataTable.
Die andere soll zum Editieren einzelner Ressorts genutzt werden.
Im Hintergrund liegt eine SessionScoped Bean die sowohl die Daten aus der Datenbank holt als auch die jeweilige Zeile zum Editieren entgegen nimmt.
Ich habe beim Aufbau der dataTable in jeder Zeile einen html commandLink mit einer actionMethode positioniert.
Leider funktioniert der Aufruf der Methode in der SessionScoped Bean nicht. Es wird die momentante Seite einfach nochmal erneut aufgerufen.
Durch einen Reload der Seite wird nur eine leere Tabelle anzeigt (weil ja die entsprechende Methode nicht nochmal aufgerufen wird)
Ich möchte aber das der Benutzer auf die zweite Seite weitergeleitet wird, wo dann die Daten der jeweils ausgewählten Zeile drinn stehen sollen.
Okay genug geredet, jetzt gibts Code.
Hier ein Ausschnitt meiner SessionScoped Backing Bean:
Code:
@ManagedBean(name = "MRessort") @SessionScoped public class MRessort implements Serializable { ... private Ressort ressortItem; private HtmlInputHidden ressortItemId = new HtmlInputHidden(); ... // GET und SET Methoden ... public String editRessort(){ ressortItemId.setValue(ressortItem.getId()); return "editRessort"; // Navigation } // Anzeige der Ressorts public String viewRessortCount() { intRessorts = getRessortCount(); ressorts = ressortFacade.findAll(); return "listRessort"; } }
Meine listRessort.xhtml sieht folgendermaßen aus :
Code:
<ui:composition template="/NappTemplate.xhtml"> <ui:debug/> <ui:define name="content"> <p>Es sind insgesamt <h:outputText value="#{MRessort.intRessorts}"/> Ressorts vorhanden.</p> <f:view> <h:form id="ressortForm" prependId="false" > <h:dataTable value="#{MRessort.ressorts}" rowClasses="odd_row, even_row" var="row" border="1" cellpadding="2" cellspacing="0" > <h:column> <f:facet name="header"> <h:outputText value="ID"/> </f:facet> <h:outputText id="ressortID" value="#{row.id}"/> </h:column> <h:column> <f:facet id="header" name="header"> <h:outputText value="Name"/> </f:facet> <h:outputText id="ressortName" value="#{row.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="MODUS"/> </f:facet> <h:commandLink action="#{MRessort.editRessort}" value="Bearbeiten" > <f:setPropertyActionListener target="#{MRessort.ressortItem}" value="#{row}"/> </h:commandLink> </h:column> </h:dataTable> </h:form> </f:view> </ui:define> </ui:composition>
Leider funktioniert es nicht so wie er es schildert.
Meine faces-config habe ich auch entsprechend angepasst:
Code:
<navigation-rule> <from-view-id>/protected/listRessort.xhtml</from-view-id> <navigation-case> <from-outcome>editRessort</from-outcome> <to-view-id>/protected/editRessort.xhtml</to-view-id> <redirect/> </navigation-case> </navigation-rule>
Ich verzweifel langsam, versuche seit 2 Tagen das Problem zu lösen, doch bekomme es einfach nicht hin.
Über einen nützlichen Ratschlag würde ich mich freuen.
Liebe Grüße
glister
Comment