Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: html-lomake ja java

slitzu [30.06.2006 12:47:02]

#

Otan lomakkeelta muutamia parametrejä java-pavulle. Jostain syystä tapa1 toimii mut tapa2 ilmoittaa näiden arvojen arvoksi NULL.

Tapa1:

public void setToName(String prm) {
     toName = prm;
}

public void setMessage(String message) {
     this.message = message + " ystäväni " + toName + "!";
}

ja sit tulostetaan tuo this.message ja kaikki arvot tulee oikein.

Tapa 2:

public void setToName(String prm) {
     toName = prm;
}

public String message = "Arvoisa " + toName;

ja tulostuksessa tulee Arvoisa NULL.

Missä mahtaa olla vika?

Mod. edit: kooditagit

renni [01.07.2006 18:41:08]

#

Pavuissa on tapana tehdä setterit ja getterit, jälkimmäisessä koodissa puuttuu se getteri. Eli teeppä getName() metodi ja käytä sen paluuarvoa messagessa.

slitzu [03.07.2006 09:11:56]

#

Ei onnistu. Yhä edelleen tulee null-arvoja.

Tarkoituksena on siis tehdä mailinlähetysskripti jsp:llä, jossa osoitteet ja nimet otetaan talteen html-lomakkeelta MUTTA varsinainen viesti on valmiina skriptissä. Tapa 1:ssä tuo viestikin otettiin lomakkeelta, ja kaikki toimi hyvin, mutta Tapa 2:ssa kun yritän luoda viestin vasta pavun sisällä, lähtee viesti hyvin, mutta muut kentät saavat null-arvoja.

Metabolix [03.07.2006 11:10:47]

#

Johtuisiko siitä, että siinä vaiheessa, kun message-muuttujaan laitetaan tuo, toNamea ei ole vielä asetettu eli se on null? Laitapa koodi sopivaan järjestykseen, tee viesti paloista vasta, kun ne palat ovat paikoillaan.

slitzu [03.07.2006 11:38:23]

#

Koodinpätkässä on seuraavanlainen järjestys:

1. muuttujien alustus
2. setterit
3. message-muuttujan kokoaminen eri paloista

Silti tulee null-arvoja..

Tässä tuo koodinpätkä nyt vielä ois:

private String toName = null;

public void setToName(String prm) {
	this.toName = prm;
}

public getToName() {
        return toName;
}

public String message = "Arvoisa " + toName;

Tällä tavalla tulostuu siis Arvoisa null.

Mod. edit: kooditagit

Metabolix [03.07.2006 12:26:51]

#

Yleensä funktioiden ulkopuoliset muuttujat alustetaan heti aluksi. Tuossa pitäisi varmaankin ensin kutsua setToName-funktiota ja vasta sitten tehdä message. Sinuna laittaisin viestin tekemisenkin omaan funktioonsa, niin ei sattuisi tuollaisia.

En sitten näistä Javapavuista tiedä, aivan uusi lajike minulle.

slitzu [06.07.2006 13:31:46]

#

Tuntuu et kaikkea ois jo kokeiltu, mut silti joko tulostuu null tai ei mitään. Jos puolestaan otan myös viestin message-muuttujaan setMessage()-funktiolla suoraan html-formilta niin kaikki sujuu loistavasti, myös viestin rakentaminen ja siinä noiden muiden html-formilta tulevien muuttujien käyttö...

Dunno.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta