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
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- 237 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070
- GAMER PC! i9-13900 / RTX 4070 Super / 32GB DDR5 / 1TB NVMe / B760 / 650w Gold! BeszámítOK
- Új állapotban! Lenovo ThinkPad T14 Gen 3 i5-1245/16gb ram/256 ssd FHD+ garancia
- AKCIÓ! 1TB Kingston KC3000 NVMe SSD meghajtó garanciával hibátlan működéssel
- Apple iPad Air 5.Gen 64GB 100% (1év Garancia) - AKCIÓ
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



