Merhaba arkadaşlar bir kaç haftadır arıyorum ancak bulamadım ve okuldan arkadaşım bu siteyi önerdi.

Sorunum: JSF'de databaseme kaydetmiş olduğum resimler var.Ve ben bu resimlerimi dataTable ile kullanıcıya sunuyorum ve kullanıcı o dataTable dan herhangi bir tanesini seçtiğinde .xhtml sayfamın herhangi bir yerinde göstermek istiyorum nasıl yapabilirim?

soruldu: 19 Tem '14, 12:22

SercanEnder's gravatar image

SercanEnder
86226
cevap kabul oranı: 0%

wikileştirildi: 20 Tem '14, 07:18


Merhaba , primefaces ajax ile yapa bilirsin mesela :
index.xhtml


<h:body>
    <h:form>
        <p:dataTable id="table" var="img" value="#{index.listImages}" style="width: 500px;"
                     selectionMode="single" selection="#{index.selectedImages}" rowKey="#{img.id}">
            <p:ajax event="rowSelect"  listener="#{index.showImage()}"/>
            <p:column headerText="ID">
                <h:outputText value="#{img.id}" />
            </p:column>

            <p:column headerText="NAME">
                <h:outputText value="#{img.name}" />
            </p:column>

        </p:dataTable>

    </h:form>
    <br/>
    <h:form id="panel">
        <p:panelGrid columns="1" >
            <p:graphicImage value="#{index.imagesPath}"/>
        </p:panelGrid>
    </h:form>
</h:body>


IndexController


    private List<images> listImages = new ArrayList<>(); 
private Images selectedImages;
private String imagesPath;

public IndexController() {
    listImages.add(new Images(1, "Home.png", "images/Home.png"));
    listImages.add(new Images(2, "Main.png", "images/Main.png"));
    listImages.add(new Images(3, "Action.png", "images/Action.png"));
    listImages.add(new Images(4, "Back.png", "images/Back.png"));
}

public void showImage() {
    RequestContext.getCurrentInstance().update("panel");
    imagesPath = selectedImages.getPath();
}

// Getter Setter Metodları


Images.java


  public class Images {

    private int id;
    private String name;
    private String path;

    public Images(int id, String name, String path) {
        this.id = id;
        this.name = name;
        this.path = path;
    }
// Getter Setter metodlari

}

ve .... alt text

permanent link

cevaplandı: 19 Tem '14, 13:14

Sahil_H's gravatar image

Sahil_H
3.2k255461
cevap kabul oranı: 6%

değiştirildi: 19 Tem '14, 13:20

Eline sağlık kardeşim ancak DAO mimarisi ile veritabanıma bağlayamadım acaba ayıp olmazsa nereleri değiştirmem gerektiini söyleyebilirmisin?

(20 Tem '14, 02:11) SercanEnder SercanEnder's gravatar image
1

Teşekkürler . Tam olaraq ne yapmak istediyinizi soylerseniz yardimci olurum

(20 Tem '14, 03:14) Sahil_H Sahil_H's gravatar image
1

veritabanindaki kolonlari paylaşabilirmisiniz?

(20 Tem '14, 04:40) Sahil_H Sahil_H's gravatar image

musteriadi

musterisoyadi

id

profilresmi

Kolonlarım var PostgreSQL oldugu için size tiplerinide yolluyorum belki lazım olur.

musteriadi character varying

musterisoyadi character varying

id integer

profilresmi bytea

(20 Tem '14, 05:24) SercanEnder SercanEnder's gravatar image
1

resimleri gostermesi icin resmin kendisini diyil yolunu gostermeniz lazim veritabaninda resmin yolunu tutun resmi ise projede bir dosyada saklayin veritabaninda resmin sadece yolu oldukda yuklenme de az olur ve programin hizi yavaslamaz. yani veritabanini asagidaki gibi deyisdirin ,

id integer musteriadi character varying musterisoyadi character varying profil resmi character varying

projede images adinda bir folder acin resimleri burada tutun ve veritabaninda resmi insert ederken yolunu images/home.png - gonderin ve ornekdeki gibi graphicImage value olarak yolu verin ...

(20 Tem '14, 05:54) Sahil_H Sahil_H's gravatar image

Dediğinizi yapmaya çalıştım aşağıda tüm kodları verdim.fileUploadListener'dan gelen resimin yolunu veritabanına nasıl insert edeceğim ?

.xhtml

<h:head>    
</h:head> 
<h:body>
<h:form>
    <p:dataTable id="table" var="img" value="#{resimBean.listImages}" style="width: 500px;"
                 selectionMode="single" selection="#{resimBean.selectedImages}" rowKey="#{img.id}">
        <p:ajax event="rowSelect"  listener="#{resimBean.showImage()}"/>
        <p:column headerText="ID">
            <h:outputText value="#{img.id}" />
        </p:column>
        <p:column headerText="NAME">
            <h:outputText value="#{img.name}" />
        </p:column>
    </p:dataTable>

<p:fileUpload  fileUploadListener="#{resimBean.showImage()}"
    mode="advanced" 
    auto="true"
    sizeLimit="100000" 
    allowTypes="/(\\.|\\/)(gif|jpe?g|png)$/"/>
            </h:form>
   <br/>
    <h:form id="panel">
        <p:panelGrid columns="1" >
            <p:graphicImage value="#{resimBean.imagesPath}"/>
        </p:panelGrid>
    </h:form>
</h:body>
</html>

Image.java

public class Image
{
     private int id;
        private String name;
        private String path;

        public Image(int id,String name, String path) {
            this.id = id;
            this.name = name;
            this.path = path;
        }

        public int getId()
        {
            return id;
        }

        public void setId(int id)
        {
            this.id = id;
        }

        public String getName()
        {
            return name;
        }

        public void setName(String name)
        {
            this.name = name;
        }

        public String getPath()
        {
            return path;
        }

        public void setPath(String path)
        {
            this.path = path;
        }
}

resimlerBean

@ManagedBean
@ViewScoped
public class resimBean
{
    private List<Image> listImages = new ArrayList<>();

    private Image selectedImages;

    private String imagesPath;

public resimBean() { //Veritabanına dosya uzantılarını yollamam lazım 
    listImages.add(new Image(1, "Home.png", "resimler/Capture_14.png"));
    listImages.add(new Image(2, "Main.png", "images/Main.png"));
}

public void showImage() {
    RequestContext.getCurrentInstance().update("panel");
    imagesPath = selectedImages.getPath();
}

public List<Image> getListImages()
{
    return listImages;
}

public void setListImages(List<Image> listImages)
{
    this.listImages = listImages;
}

public Image getSelectedImages()
{
    return selectedImages;
}

public void setSelectedImages(Image selectedImages)
{
    this.selectedImages = selectedImages;
}

public String getImagesPath()
{
    return imagesPath;
}

public void setImagesPath(String imagesPath)
{
    this.imagesPath = imagesPath;
}

}

permanent link

cevaplandı: 20 Tem '14, 06:37

SercanEnder's gravatar image

SercanEnder
86226
cevap kabul oranı: 0%

1

file upload nasil yapilacagini buradan baka bilirsin http://www.mastertheboss.com/primefaces/primefaces-file-upload-example

(20 Tem '14, 06:41) Sahil_H Sahil_H's gravatar image

Ya hocam olmuyor.Ben

public resimBean() {
listImages.add(new Image(1, "Home.png", "resimler/Capture_14.png"));
}

içini nasıl doldurmam gerekiyor. :/

(20 Tem '14, 07:03) SercanEnder SercanEnder's gravatar image

JPA kullanıyor musunuz?

(20 Tem '14, 07:31) Sahil_H Sahil_H's gravatar image

Hayır.Normal SQL sorgusu ile çalışıyorum

(20 Tem '14, 07:36) SercanEnder SercanEnder's gravatar image
1

tamam 5 dak. bekle proje olusdurub gondereceyim

(20 Tem '14, 08:01) Sahil_H Sahil_H's gravatar image
1

Hocam sizede zahmet olacak ama rica ederek bekliyorum.. :)

(20 Tem '14, 08:15) SercanEnder SercanEnder's gravatar image
1
(20 Tem '14, 08:55) Sahil_H Sahil_H's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×281
×66
×41
×14

Soruldu: 19 Tem '14, 12:22

Görüntüleme: 904 kez

Son güncelleme: 20 Tem '14, 08:55

powered by BitNami OSQA