[Java] Hodnoty z inputText do premennej v controlleri

Programovacie jazyky, rady, poradňa...
PC-Man
Light Star
Light Star
Príspevky: 227
Registrovaný: 29 aug 2005, 22:59
Bydlisko: Bratislava <-> Michalovce
Kontaktovať používateľa:

[Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa PC-Man »

Mam vytvorenu webaplikaciu, ktora komnukuje s DB. Ako server pouzivam Java GlassFish 3 a ako framework Java ServerFaces.

Moj problem je nasledovny: v controlleri tabulky (dhimController) mam nadefinovanu premennu searchString (typu String). V XHTML mam element

Kód: Vybrať všetko

<h:inputText value="#{dhimController.searchString}"/>
Ak nastavim napevno v controlleri do premennej searchString nejaku hodnotu, zobrazi sa mi ako value v inputText. Lenze ja potrebujem po zadani nejakej hodnoty do inputTextu a kliknuti na tlacidlo

Kód: Vybrať všetko

<h:commandButton value="Hladaj" action="#{dhimController.inicializeSearchResults()}"/>
dostat tu hodnotu do premennej searchString v controlleri. Ked som pozeral hotove aplikacie, vsade to bolo riesene podobne ako mam ja, teda stacilo do value zadat #{nejakyController.premenna} a ono to uz samo predavalo tu hodnotu do premennej. Mne to vsak nefunguje (resp, funguje iba jednym smerom - preddefinovanu hodnotu v controlleri mi zobrazi ako value, ale po zmene cez inputText ju v controlleri nezmeni). Samorejme, getre a setre mam (defaultne vygenerovane). Kde robim chybu ?
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa sharky-no »

aku chybu ti to hlasi?

mas ten <h: inputText> v <h:form> ??
PC-Man
Light Star
Light Star
Príspevky: 227
Registrovaný: 29 aug 2005, 22:59
Bydlisko: Bratislava <-> Michalovce
Kontaktovať používateľa:

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa PC-Man »

Ano, mam to v <h:form>. nehlasi to ziadnu chybu, proste ked kliknem na hladat, zavola to normalne metodu dhimController.inicializeSearchResults()

Kód: Vybrať všetko

 public String inicializeSearchResults() {
            setDhims(new ListDataModel(ejbFacade.returnSearchItemsList(colName, searchString))); 
            return List; //List.xhtml je nazov stranky, ktora sa ma zobrazit
        }
ta zbehne, avsak vyhodi mi vysledky hladania pre retazec, ktory je priradeny tej premennej v controlleri a nie ten, ktory som zadal do inputTextu...

teda ak mam v contolleri tu premennu ako:

Kód: Vybrať všetko

 private String searchString = "nejakyretazec"; //tu mam len docasne priradeny retazec kvoli testovaniu... kedze z inputTextu mi hodnoto nevezme
tak mi to vrati vysledky, ktore zodpovedaju hodnote "nejakyretazec" (ten retazec mi aj ukaze na stranke v inputTexte, avsak ked ho zmenim, tak to neberie v uvahu a vzdy to hlada podla "hladanyretazec")...

//BTW, sharky, uz som o tom kecal aj s Matom Rieszom, ani on nevedel, preco to nefunguje... podla neho je to dobre a nechapal tiez
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa sharky-no »

a ked neinicializujes tu premennu? resp. ze jej nepriradis nejaky string.
potom by to malo vyhodit nejaku chybu, a podla tej by si mohol zistit ze kde mas zadrhel..

a to len tento jeden inputtext ti nefunguje?
ja to mam spravene tak isto ako ty, a ide to v pohode.. akurat ze pouzivam iny nazov premennej...
PC-Man
Light Star
Light Star
Príspevky: 227
Registrovaný: 29 aug 2005, 22:59
Bydlisko: Bratislava <-> Michalovce
Kontaktovať používateľa:

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa PC-Man »

Ano, ked jej nepriradim ziaden retazc, tak mi hodi chybu... chybu v tom zmysle, ze

Kód: Vybrať všetko

createQuery("SELECT d FROM Dhim d WHERE d.:colName LIKE '%:searchString%'")
nemoze zbehnut, kedze searchString je null...

Zatial ba tento jeden, kedze som dalsie nekodil, pokym nerozbeham tento (skusal som aj ine nazvy premennej, aj deklaraciu cez new... stale to iste...)
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa sharky-no »

neviem ti poradit,
akurat ze by som na tvojom mieste skusil nieco jednoduche, aby ti nacitanu hodnotu z inputu vypisalo v nejakom dive alebo alerte bez pouzitia databazy, len s tym ze pouzivas controllera

a potom postupne na to nabaloval facade a sledoval ako sa to sprava
PC-Man
Light Star
Light Star
Príspevky: 227
Registrovaný: 29 aug 2005, 22:59
Bydlisko: Bratislava <-> Michalovce
Kontaktovať používateľa:

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa PC-Man »

presne tak som to uz skusal.... skonci to prave medzi strankou a tou premennou... cize ked stlacim tlacidlo, nenastavi tu hodnotu z inputText do premennej... tam niekde je problem. No dakujem aj tak za ochotu, ja som to uz riesil s viacero ludmi :D vsetci povedali, ze to mam dobre, ze im to takto funguje.... a nechapali, co je to za zahadu. Este aj sam Riesz mi to pri odovzdavani uznal za plny (hladanie), kedze podla neho to mam dobre a nevedel prist na to, kde je problem. Ale v zaverecnom by som to uz chcel mat konecne vyriesene, nech to facha vsetko ako ma... lebo okrem loginu (ktory uz mam v hlave premysleny, len som sa don nepustil) je toto posledny problem, ktory potrebujem vyriesit k dokonalosti aplikacie :D
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa sharky-no »

to bude podla mna chyba v xthml, ked java chybu nehlasi, a nic ani nenacitava..
skusal si nejaky iny projekt rozbehat, z cviceni abo z prednasky? tam su nejake inputtexty skusit ze ci ti tam funguju.
PC-Man
Light Star
Light Star
Príspevky: 227
Registrovaný: 29 aug 2005, 22:59
Bydlisko: Bratislava <-> Michalovce
Kontaktovať používateľa:

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa PC-Man »

ano, skusal som, to mi funguje v pohode... jediny rozdiel co vidim je, ze v tej ukazke z prednasky je to riesene tak, ze to nepriradi hodnotu priamo premennej v controlleri, ale vytvori najprv novu instanciu tej polozky a do jej premennej az nacita ten obsah (tam to je potrebne, kedze ide o pridavanie novych poloziek a je potrebne zadat vsetky hodnoty tej entity). Lenze ja to nemam viazane na konkretny stlpec, takze je mi zbytocne vytvarat novu instanciu toho objektu. Ja to planujem mat tak, ze tam budu tlacidla "hladaj podla stlpca 1","hladaj podla stlpca2" atd... avsak hladany vyraz bude vzdy v tej istej premennej searchString (resp. v jedinom inputTexte)
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa sharky-no »

posledna vec a potom som uz bezradny :lol:

skus z tej prednasky komplet celu xhtml stranku skopcit k tebe do projektu zmazat cele body okrem toho inputTextu a dat tam tu svoju premennu a nejaky commandbutton na potvrdenie..

a toto vsetko robis na index.xhtml?
PC-Man
Light Star
Light Star
Príspevky: 227
Registrovaný: 29 aug 2005, 22:59
Bydlisko: Bratislava <-> Michalovce
Kontaktovať používateľa:

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa PC-Man »

nie, to uz mam ovela viac tam podstranok, toto je konkretne search.xhtml... ale to nie je podstatne... pri pridavani novych poloziek to mam robene velmi podobne (s tym rozdielom, ako som uz spominal vyssie, ze to vytvori kompletne novy objekt entity a jemu nastavuje premenne) a tam mi to facha bez problemov. No napada mi este spravit to takto aj tu a nastavit iba jednu hodnotu tomu objektu... a pri hladani pouzit tu hodnotu toho objektu... aj ked je to zbytocne, nelogicke... a hlavne je nelogicke, preco by to nemalo vediet priradit hodnotu priamo premennej v controlleri a premennej nejakeho ineho objektu vytvoreneho v controlleri uz vedelo... ale skusim no :) nic ine ma uz nenapada :) dik
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa sharky-no »

a potom to este skus na index.xhtml ked ti to nepojde :)
nezabudni na to to skusit..

a uz som ticho.. vela stastia :D
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Re: [Java] Hodnoty z inputText do premennej v controlleri

Príspevok od používateľa c-ice »

1. to ste si mohly pisat na nejakom IM :D
2. mas generovanu aplikáciu alebo nejaku obdobu toho čo robil Gabo ?
3. ak generovane tak...
xhtml

Kód: Vybrať všetko

<h:form>
<h:inputText value="#{dhimController.searchString}"/>
<h:commandButton value="Hladaj" action="#{dhimController.inicializeSearchResults()}"/>
</h:form>
contRoller

Kód: Vybrať všetko

public String inicializeSearchResults(){
recreateModel();
return "List";
}

Kód: Vybrať všetko

public DataModel getSearchItems(){
items=...createDataPageModel(getSearchString());
return items;
}
Facade

Kód: Vybrať všetko

public List<> findSearch(String hladany){
hladany="%"+hladany.replace(" ","%")+"%";
return createQuery("SELECT d FROM Dhim d WHERE d.prvyStlpec LIKE :searchString OR d.druhyStlpec LIKE :searchString OR d.tretiStlpec LIKE :searchString").setParameter("searchString",hladany).getResults();
}
:psssst:
Napísať odpoveď