String wird immer neu geladen

xxsteambroxx

Mitglied
Guten Tag, Ich arbeite an einem "Gästebuch" um ein bischen Vertrauter mit JSF und die Einbindung von Java Funktionen zu machen. Nun hier ist mein Code:

<!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

<h:head>
<title>Gästebuch W.E.B.</title>
<script language="JavaScript">


</script>
</h:head>

<h:body>

<h:form>

Vorname: <h:inputText value="#{gaestebuch.firstname}"/>

<br/><br/>

Nachname: <h:inputText id="lastname" value="#{gaestebuch.lastName}"/>

<br/><br/>

Ihr kommentar:
<br/><br/>

<h:inputText id="textField" value="#{gaestebuch.textField}" style="display:block;width:500px;height: 250px"/>

<br/><br/>

<h:commandButton value="Empty Field" action="#{gaestebuch.exterminate}"/>
<h:commandButton value="Submit" action="#{gaestebuch.entry}"/>
<br/><br/>
<ul>

<ui:repeat value="#{gaestebuch.entry}" var="tempLanguage">
<li> #{gaestebuch.entry}</li>
<br/><br/>
</ui:repeat>

</ul>

<br/><br/>


</h:form>

</h:body>

</html>

import javax.faces.bean.ManagedBean;
import java.util.ArrayList;
import java.util.List;
import java.lang.String;

@ManagedBean
public class gaestebuch {

private String firstName;
private String lastName;
private String textField;
private String entry;


public gaestebuch() {

}

public void exterminate() {
setFirstname(null);
setLastName(null);
setTextField(null);
}

public void entry(){
if (entry == null) {
entry = firstName + " " + lastName + " " + textField;
entry = entry;
}
else entry = entry + firstName + " " + lastName + " " + textField;
setFirstname("");
setLastName("");
setTextField("");

}


public String getEntry() {
return entry;
}

public void setEntry(String entry) {
this.entry = entry;
}

public String getFirstname() {
return firstName;
}

public void setFirstname(String firstname) {
this.firstName = firstname;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public String getTextField() {
return textField;
}

public void setTextField(String textField) {
this.textField = textField;
}
}

Ich habe den Problemstring/Problemfunktion mit Rot Markiert, und würe nun gerne wissen, wieso der String "entry" seinen Wert nicht hält und dann !=null ausgiebt, sondern jedesmal wieder ==null ausgiebt ._.
Ich hätte nämlich gerne, beim zweiten durch lauf einen neuen Listeneintrag unter dem alten.


Danke schonmal im Vorraus :)
 
Zuletzt bearbeitet:

Marah

Mitglied
Kann es sein das Code fehlt? Anhand des Codes hier, kann ich nicht auf dem genauen Ablauf schließen aber hier 2 Anmerkungen

Java:
public void entry(){
if (entry == null) {
entry = firstName + " " + lastName + " " + textField;
//entry = entry; [B] //warum?[/B]
}
else [B]{ // <- { fehlt[/B]
entry = entry + firstName + " " + lastName + " " + textField;
setFirstname("");
setLastName("");
setTextField("");
}

Kürzere Version:

Java:
public String toString(){
    return firstName + " " + lastName + " " + textField;
}

public void entry(){
entry = (entry == null) ? toString() : entry + toString();
setFirstname("");
setLastName("");
setTextField("");
}

Hinweis:

Java:
public gaestebuch() {

}
Standardkonstruktoren kannst du weglassen. Du kannst davon ausgehen, wenn eine Klasse keinen Konstruktor mit Parametern hat, dass ein Standardkonstuktor existiert.
 

Ähnliche Java Themen

Neue Themen


Oben