Keresé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 :DDD

    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" />

  • updog

    őstag

    válasz bucsupeti #8451 üzenetére

    "Van egy kilépés gomb a formon" Rakd külön formra a kilépés gombot, legalábbis ha úgy van ahogy írod ("a" formon), bár lehet hogy túl triviális dologra gondolok, de én is futottam már ebbe :)

Új hozzászólás Aktív témák

Hirdetés