String wird immer neu geladen

X

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:
M

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

Anzeige

Neue Themen


Oben