Hirdetés
Új hozzászólás Aktív témák
-
updog
őstag
Sziasztok!
JSF-ből szeretnék egy galériát, ami egy külső fix helyen lévő path-ból olvassa fel a képeket.
A Tomcat server.xml-ébe beraktam ezt a sort:
<Context docBase="/kepek/helye" path="/static/img" />Ez eddig rendben is van, ha graphicImage tag-be kézzel beleteszem egy kép fájlnevét, akkor megjelenik egy kép:
<h:graphicImage value="/static/img/sas.jpg"></h:graphicImage>Viszont, ugye a galériát úgy szeretném, hogy az összes fájlnevet felolvasom egy listába egy beanben, és nyilván dinamikusan generálnám a graphicImage-ket.
Ahhoz hogy felolvassam a fájllistát, valahogy meg kéne a Java kódban találnom a "/static/img" valódi helyét, de tökre nem triviális, ahogy az sem, hogy mit keressek googleban. Nyilván favágó módszer hogy Javaba is szúrok egy ilyet:
File imgFolder = new File("/kepek/helye");
images = new ArrayList<>(Arrays.asList(imgFolder.list()));Ebből némi fájlnév hákolással gondolom kijöhet a dolog. Csak ez nem tűnik túl elegánsnak
, másrészt egyelőre ez sem működik, attól hogy sikerült összekalapálnom hogy működjön
Ha valaki tud segíteni, megköszönöm.
-
updog
őstag
válasz
Aethelstone
#9825
üzenetére
Köszi mindenkinek a válaszokat!
A lényeg ugye az lenne, hogy az applikációtól független path-on elérhető képeket rakjak ki (tehát pl. ide a relative path nem igazán értelmezhető).
Az most mindegy, hogy honnan szedem a fájlok elérési útjait, a problémám konkrétan az, hogy azok most is jók (külön beírva akár böngészőbe ezeket, megjelennek a képek, míg az oldalon beágyazva ugyanezzel az elérési úttal nem). Először ezt a bagatellnek tűnő hibát próbálom megoldani.
Nyilván tök ugyanezzel a kóddal - ha a webapp saját folderébe teszem a képeket és így relatív pathszal hivatkozok rájuk, megjelennek, tehát nem a megjelenítő kóddal lesz a baj.
-
updog
őstag
Sziasztok!
Egy egyszerű, Tomcaten futó Java EE webappban akarok egy galériát létrehozni (szóljatok ha már rosszul indultam el).
Simán egy külső folderből akarom felolvasni a képfájlokat, és kirakni az oldalra.
Hogyan tudom ezt transzparensen csinálni? (tehát hogy ne C:\Temp\images-t kelljen mondjuk a graphicImage-nél használnom, vagy legalábbis a kódban ne így jelenjen meg?
Amire most én gondoltam, nagyon naiv próbálkozás, de legalább nem is működik

File f = new File("C:\\Temp\\images");
images = new ArrayList<>();//a view Bean változója, String ArrayList
for (File img : f.listFiles()) {
images.add(img.getAbsolutePath());
}<h:form>
<c:forEach var="item" items="#{imagesView.images}">
<h:graphicImage value="#{item}" cache="false" />
</c:forEach>
</h:form>A kódban szépen látszanak a képek elérési útjai, csak "simán" kimásolva és azt beillesztve a címsorba meg is jelennek, de magán az oldalon viszont nem jelennek meg a képek. És gondolom ennél rondább és amatőrebb módja nem is lenne ennek. google-ba beüthető kulcsszavakat is megköszönök a "gondold át hogy mit műveltél" kommentek mellé

Pl egy generált kóddarab:
<img src="C:\Temp\images\DSC_0020_th.jpg" />
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- RTX 2060 Super - Ryzen 5 5500 (ÚJ, 2 ÉV GARI) - 16 GB DDR4 3200 MT/s CL16 - 1 TB NVMe SSD
- Thrustmaster TS-PC Racer Ferrari 488 Challenge Edition (6.2NM) - ÚJ - GARANCIÁLIS 2028.01.06-ig
- 300db Teszteletlen Okostelefon (épp kijelzős mind) - 3990Ft / db
- ThinkPad T14 Gen1 27% 14" FHD IPS érintő i7-10610U MX330 16GB 256GB NVMe ujjlolv gar
- BenQ MA320U 9H.LMXLB.QBE Monitor
- Prémium! Bambulab bontatlan filamentek (PLA - PETG- ABS) ÁFÁS- számlával eladóak készletről!
- Asus Vivobook S16 S3607QA-PL018W
- BESZÁMÍTÁS! 16GB G.SKILL Trident Z 4000MHz DDR4 memória garanciával hibátlan működéssel
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- Samsung Galaxy Book 3 /i5-1335u/8GB/512SSD/FHD/Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



