Új hozzászólás Aktív témák
-
Érdekelne mit gondoltok az alábbi helyzetről.
Adott egy cégen belül írt viszonylag egyszerű komponens. Ami áll egy view.xhml-ből és egy viewData.java model osztályból. Van még egy viewControllerünk az esetleges helyi logikákhoz.
SOAP-on keresztül jönnek az adtok ami kérdések.. A webszolgáltatás definiálja a kérdés típusát, válaszlehetőségeket és ez alapján rajzolódik ki a komponens. Most úgy néz ki, hogy alapvetően eldöntendő kérdések vannak, de ha valaki "Igen" választ jelöl meg akkor megjelenik egy beviteli mező, ahol további adatot kell megadni. Ez lehet, hogy egy mondat, de lehet csak egy szám.A modelben úgy vannak letárolva a kérdések és a válaszok, hogy függetlenül a kérdés típusától és az esetleg hosszabb válasz típusától egy getValue()-val szedjük ki a választ. Amikor ezt visszafelé küldjük a webszolgáltatásnak.
Előadódott egy olyan probléma, hogy amikor valaki az igen válasz után egy egész számot adott meg, az küldéskor már tizedes törtként ment tovább. (Pl 5 => 5.0)
Mikor belenéztem gyorsan a komponensbe azt láttam, hogy ott String-ként tárolódik ezért lehet, hogy az InputNumber mezőbe beírt számot történt tárolja le...
Mivel az adatok beküldése egy másik controller feladata ezért ott kerül összeállításra a request.
A fenti problémára 2 megközelítés merült fel.
1. Abban a controllerben amiben összeáll a beküldés, ott próbálom parseolni float-ra. Ha sikerül, akkor számról van szó, így round-al kerekítem egészre, és String-re konvertálva megy be a requestre. Ha elszáll NumberFormatException-el akkor azt jelenti, hogy ez egy vegyes tartalmú mező. Simán mehet ahogy van és nem kell kerekíteni.
2. A komponensbe kerül egy módosítás a modelbe. Nem a korábbi String value-ban tárolom hanem lesz egy int numberValue és a value-hoz írt getterben vizsgálom meg, hogy melyiket kell visszaadni és igazából így a modelbe kerül a logika...
Sok dolgot kihagytam és kicsit zavarosnak tűnhet, de szerettem volna kicsit kontextusba helyezni a problémát, nem csak úgy szárazan tálalni.
A kérdés igazából az, hogy a model osztályt meghagyni egyszerű POJO-ként a jobb ötlet és a controlllerben konvertálni a jobb ötlet, vagy mellőzni a konverziót, és a modelt módosítani "okosítani" kisebb logikákkal a jó irány?
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Xbox tulajok OFF topicja
- Robotporszívók
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- One otthoni szolgáltatások (TV, internet, telefon)
- Trollok komolyan
- Nyomtató topik
- Revolut
- Hello Leo: véget ér a Starlink egyeduralma
- További aktív témák...
- Új Dobozos Lenovo Thinkpad P14s G5 Workstation Laptop 14" -45% Ultra 7 165H 32/512 RTX 500 3K 120Hz
- Revel Performa3 5.1 szett + Primare SPA23
- Sony Alpha a7R IV tükör nélküli digitális fényképezőgép váz (ILCE-7RM4A) Új modell
- Új Dobozos Dell Latitude 3450 Laptop 14" -40% i7-1355U 16GB/256GB SSD NVIDIA MX570A 2GB FHD
- Megkímélt HP EliteBook 855 G7 Fémházas Strapabíró Laptop 15,6" -65% AMD Ryzen 3 PRO 4450U 16/256 FHD
- Apple iPhone 17 Pro 256GB Deep Blue Újszerű állapot 100% akku (51 ciklus)
- Apple Airpods 4 (2026.12.30-ig Apple Garancia)
- ÁRGARANCIA!Épített KomPhone Ryzen 5 9600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Dell Precision 7810 TOWER,E5-2670 v3 (12/24) 16GB DDR4,256GB SSD,QUADRO M4000 8GB VGA,WIN11
- iPhone 13 mini 128GB 100% (1év Garancia)- ÚJ EREDETI AKKUMULÁTOR
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

