JSF Problem mit Bearbeiten von Datensätzen

J

JSFBeginner

Gast
Hallo zusammen,

ich habe ein kleines Problem :)
Ich zeige auf einer Seite namens "overview" mit Hilfe einer Tabelle einige Datensätze aus einer Datenbank an, welche mit Hilfe meiner SessionScoped-Bean "datenPM" aus der Datenbank gelesen werden.
In jeder Zeile meiner angezeigten Tabelle befindet sich ein Link zum Bearbeiten des Datensatzes, welche in datenPM den ausgewählten Datensatz in die Variable "currentData" zwischen speichert und auf eine weitere Seite "details" weiterleitet.

Dort kann man dann den in currentData zwischen gespeicherten Datensatz bearbeiten und speichern. Wenn allerdings vor dem Speichern der User in einem neuen Tab einen anderen Datensatz bearbeiten will wird die Referenz currentData neu gesetzt. Speichert der User nun den im ersten Tab befindlichen Datensatz, wird nicht der zuerst ausgewählte Satz geupdatet, sondern der zweite, da ja die Referenz neu gesetzt wurde...
datenPM ViewScoped zu setzen würde ja auch nichts bringen, da wie der Name schon sagt, datenPM dann beim Aufruf der details-Seite nicht mehr "gültig" und somit vom Container neu initialisiert wäre.
Dem User immer nur einen Datensatz auf einmal bearbeiten lassen möchte ich nur ungern, wenn es aber nicht anders geht, werde ich es wohl so machen müssen :)

Leider fehlt es mir an Erfahrung, um solch ein Problem zu lösen und setze daher auf die eurige.
Ich hoffe, mir kann jemand helfen und mich wiedermal etwas weiter bringen.
P.s.: Wenn euch ein besserer Titel für das Thema einfällt, dann kann es ein Moderator gerne bearbeiten:)
 

stareagle

Mitglied
Moin,

wäre es es eine Möglichkeit, die Seite zum Bearbeiten über einen
Code:
h:link
statt eines
Code:
h:commandLink
und einen URL-Parameter für den ausgewählten Datensatz aufzurufen? Mehr Infos dazu gibt es hier:

JSFAtWork, JSF 2.0 und Apache MyFaces

Beste Grüße

Jens
 

Templarthelast

Bekanntes Mitglied
Du kannst prüfen, ob die Variable schon in der Session gesetzt ist, und falls nicht diese neu erzeuge.

Java:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Map<String, Object> sessionMap = externalContext.getSessionMap();
SomeObject yourVariable = (SomeObject) sessionMap.get("somekey");
Quelle
 

F.S.WhiTeY

Bekanntes Mitglied
Ich würde das mit folgenden Mitteln lösen:

1. eine Collektion für die zu bearbeitenden daten
2. eine Parameterübergabe beim bearbeiten -> ID übergeben um Objekt zu refferenzieren
3. die Collection als ManagedProperty
4. das bearbieten im ViewScope

Mein gedankengang:

Request an die bearbieten seite -> ID wird übergeben -> Bean steht als ManagedProperty zur Verfügung und man holt sich das Object mit der ID aus der Collection -> es wir bearbeitet und aus der Collection entfernt -> die anderen Objecte sind noch vorhanden und fertig.

Was haltet ihr davon?

LG
 
J

JSFBeginner

Gast
Hallo nochmal und vielen, vielen Danke für eure Antworten.

Ich habe mich jetzt für die Variante mit den URL-Parametern entschieden und bin damit sehr zufrieden. Jetzt muss ich es nur noch hinbekommen, dass nicht 2 User auf einmal den gleichen Datensatz bearbeiten und damit möglicherweiße den Stand des anderen überschreiben können :)
 

Templarthelast

Bekanntes Mitglied
Mann kann Zeilen "locken", sodass sie nur noch von einem client gleichzeit bearbeitet werden können. Beim Abschicken des Formulars musst du dann überprüfen, ob dieser Datensatz gelockt ist und dann gegebenfalls eine Fehlermeldung ausgeben.

Beispiele Locking
 

F.S.WhiTeY

Bekanntes Mitglied
Wenn du die Idee mit der Liste aufgreifen würdest, könntest du mit contains checken ob das object zum bearbeiten dort schon drin ist ;)

Sowas kann ja auch im Applicationscope laufen.
 
J

JSFBeginner

Gast
Hallo,

das Problem, dass ich eigentlich habe, ist der User. Nehmen wir an der User lockt einen Datensatz, entscheidet sich aber nicht für Speichern, sondern dafür, den Webbrowser einfach so zu schließen/killen <--- Der Datensatz ist immernoch gelockt. Ich lese mir gleich mal den von Templarthelast geposteten Link durch, den ich heute morgen auch schon gefunden habe, allerdings keine Zeit hatte, am Projekt weiter zu arbeiten :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S AJAX/RestController Post Problem Web Tier 18
pkm Problem beim Import eines dynamischen Webprojekts als .zip Web Tier 2
O JSF Java Unsigned Applet PrivilegedActionException Problem Web Tier 2
F JSF preRenderView Problem Web Tier 0
J Funktion für AJAX - Problem mit Return Web Tier 14
S Problem mit Checkboxen im Servlet erkennen Web Tier 3
N JSF JSF Selected Item & GesBetrag Problem Web Tier 1
Shams Problem mit der verwirklichung einer Readmethode in einer Chatapplikation Web Tier 3
F JSF Problem mit Primefaces Web Tier 7
F JSF Problem mit Primefaces Web Tier 4
F JSP Problem mit Property Web Tier 0
D Java EE Servlet login Problem Web Tier 1
L java.io.NotSerializableException für domain Objekte - Design Problem? Web Tier 12
T JSF Character Encoding Problem Web Tier 2
T JSF Problem mit JSF und Foreign Key Tabellen Web Tier 8
H JSF Problem mit Converter Web Tier 2
M Zeichensatz Problem? Web Tier 3
T JSF Problem wenn Session abgelaufen ist Web Tier 6
K JSF websphere application server 8 tomahawk problem Unable to find resource Web Tier 3
D JSF RichFaces Tree-Beispiel Problem Web Tier 2
M JSF Problem mit CSS und Unterverzeichnissen Web Tier 2
M JSP Problem beim deployen auf Tomcat Web Tier 2
P Servlet getWidth(); - getHight(); Problem Web Tier 3
J JSP Problem bei Hibernate mit JSP Web Tier 2
M JSF mit Tobago Problem: ServletContextListener Web Tier 5
J Facelets javascript compiler problem Web Tier 3
T Tomcat mit Servlets Problem Web Tier 7
T Servlet Problem bei gwt rpc Web Tier 7
S Servlet Problem mit Tomcat Web Tier 3
J JSF Kein Methodenaufruf mit Button möglich durch PhaseListener (redirect) Problem? Web Tier 2
P rich:panelMenuGroup --> expanded Parameter Problem Web Tier 3
F.S.WhiTeY Tmplating/CSS Problem bei JSF Web Tier 7
A ice:inputText Converter Problem Web Tier 2
B JSF Tomcat Windows Linux equals Problem Web Tier 3
R JSF JSF Composite Components: Problem mit Attributliste und Referenzierung Web Tier 2
M Problem mit Hibernate und GWT Web Tier 6
O JSP struts2 tag: Problem mit Dezimalzahlen Web Tier 2
P Struts Struts2 if tag Problem mit getText() Web Tier 3
B Java EE 6 Problem (EL) Web Tier 4
ruutaiokwu beanshell scope problem... Web Tier 7
P Problem mit HTML.Tag.OPTION Web Tier 3
N Problem mit Datei Streaming Web Tier 2
M Problem mit Verlinkung JSP Dynamische Tabelle Web Tier 7
S Architektur-Problem? 2 Servlets, ein Objekt Web Tier 4
F.S.WhiTeY JSF:org.apache.jasper.JasperException Problem Web Tier 2
H Richfaces - Taglib Problem gelb unterstrichen Ajax Output Web Tier 6
N Servlet: Problem mit getParameterValues Web Tier 4
7 Struts und Ajax. Problem mit Actions Web Tier 2
J GWT - RPC Problem Web Tier 6
F Problem mit JSF Anwendung Web Tier 9
I Logout - Problem => Bei Zurück Web Tier 2
I AJAX - Problem Web Tier 18
F Problem mit Struts Web Tier 2
I selectOneMenu - Problem Web Tier 6
H Firefox Background-Image Problem Web Tier 4
E GWT Server-Client Problem Web Tier 3
J Log4j problem Web Tier 7
F Problem mit der Methode request.getRemotePort() Web Tier 2
S GWT Problem Web Tier 4
M Problem mit Velocity Web Tier 2
S OSGi Bundle Problem - ClassNotFound Web Tier 4
J JSF Locales Problem Web Tier 3
J Problem mit Login Web Tier 4
MQue jsp- Problem Web Tier 4
P Problem der Parameterübergabe aus Iframe Web Tier 15
A Tomcat: beim Start des Servers einmalige Aktion aufrufen (Problem gelöst) Web Tier 2
R JSF <rich:datatable> problem Web Tier 4
S JSF Problem - Terminverwaltung - Ändern eines vorhandenen Termins Web Tier 2
S Filter Problem? Web Tier 6
E Problem mit t:saveState Web Tier 7
S Problem mit Anzeige zweier JSP's Web Tier 4
M Problem mit JSP und Bean Web Tier 2
F RichFaces, Problem mit PickList Web Tier 2
S Problem mit Servlet und Zugriff auf Orace XE Datenbank Web Tier 2
E Problem mit request.getParameter Web Tier 5
B getServletContext.getRealPath("/") Problem Web Tier 6
C Problem mit Hibernate und IceFaces Web Tier 2
S Problem mit Session - Übergabe von Kontext zu Kontext Web Tier 2
H problem bei Parameterübergabe mit beans Web Tier 3
U JSP form-Daten (ohne name-Attribut) an Servlet = Problem Web Tier 6
S jsf: übles problem mit <f:convertDateTime> Hilfe! Web Tier 2
A Selectbox Problem in JSP Web Tier 12
T Problem bei Session-Timeout Web Tier 3
S problem mit resultset Web Tier 6
U Problem bei Validierung mit Struts 2 Web Tier 1
A JSF-Ctrl h:inputText Problem mit Umlauten Web Tier 4
A Gleichzeitiges Bearbeiten von Objekten herausfinden Web Tier 6

Ähnliche Java Themen

Neue Themen


Oben