Jak wyświetlić obrazek pobrany z bazy (byte[]) w JSF

0

Witam !

Problem jest następujący. Jak wyświetlić obrazek pobrany z bazy (w formie tablicy bajtów) za pomocą znaczników JSF. Niestety z tego co udało mi się rozgryźć - to znacznik <h:graphicImage pozwala na podanie tylko linku URL do pliku składowanego w folderze aplikacji... Ma ktoś pomysł jak zrobić to dynamicznie - tj zassać tablicę bajtów z bazy i wyświetlić na stronie ???

0

napisać servlet który będzie pobierał z bazy ciąg bajtów reprezentujący zdjęcie a nstępnie go zwracał,
zmapować servlet na coś w rodzaju *.jpg i tyle

0

Mógłbyś rzucić jakimś przykładem ??

Ta metody w mojej aplikacji wyciągaja obrazek z bazy

    public String pathToImage() throws SQLException{
        dbSource = new DbSource();
        conn = dbSource.getConnection();
        PreparedStatement psmnt = null;
        b = Tools.getImageMap(psmnt, conn);
        return null;
    }

public static byte[] getImageMap(PreparedStatement psmnt,Connection conn) throws SQLException{
        psmnt = conn.prepareStatement("SELECT * FROM public.zdjecie WHERE zdjecie_ID =1");
       // psmnt.setString(1, "image.jpg");
        byte[] imgBytes = null;
        ResultSet rs = psmnt.executeQuery();
        if (rs != null) {
            while(rs.next()) {
                imgBytes = rs.getBytes(3);
                // use the stream in some way here
            }
            rs.close();
        }
        psmnt.close();
        return imgBytes;
    }
0

Ok już sobie poradziłem. Dla osób, które zetkną się z podobnym problemem podaję rozwiązanie.

http://www.roseindia.net/jsf/jsf-with-mysql.shtml

0

Wydaje mi się, że sposób z tego linka to dokładnie to samo co marcintom napisał ;)

0
donkey7 napisał(a)

Wydaje mi się, że sposób z tego linka to dokładnie to samo co marcintom napisał ;)

No tak, o czymś takim myślałem i opisałem to w skrócie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1