Merhaba,

PrimeFaces ile oluşturmuş olduğum templatede sol menü ve içerik kısmı mevcuttur. Sol menü de bulunan Menü listesinden herhangi bir sayfayı tıkladığımda bütün sayfanın değil de sadece içerik bölümünün güncellenmesini istiyorum fakat sayfa komple güncelleniyor. Bu durumda da slide menu kullandığımda sorun oluyor menünün varsayılan haline dönmüş oluyor.

Yani

1

1.1

1.2

1.3

2

2.1

2.2

şeklinde var ise ve ben 2.2 tıkladıktan sadece ana menuleri gösteren şekile dönüyor.

template.xhtml

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui">
<h:head>
    <title><ui:insert name="title">Default Title</ui:insert></title>
    <h:outputStylesheet library="css" name="pfcrud.css"/>
    <h:outputScript library="scripts" name="pfcrud.js"/>
</h:head>

<h:body>

    <p:growl id="growl" life="3000"/>

    <p:layout fullPage="true">
        <p:layoutUnit position="north" size="100" header="#{myBundle.AppName}">
            <!-- Menu here. Also a layout and a way to log a user out -->
            <ui:include src="/appmenu.xhtml"/>
        </p:layoutUnit>

        <p:layoutUnit position="center">
            <ui:insert name="body"/>
        </p:layoutUnit>

    </p:layout>

</h:body>
</html>

index.xhtml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui" template="/template.xhtml">

<ui:define name="title">
    <h:outputText value="#{messages.ActorTitle}"/>
</ui:define>

<ui:define name="body">

    <ui:include src="/actor/List.xhtml"/>
    <ui:include src="/actor/View.xhtml"/>
    <ui:include src="/actor/Edit.xhtml"/>
    <ui:include src="/actor/Create.xhtml"/>

</ui:define>
</ui:composition>

Burada yapmak istediğim left kısmının güncellenememesi sadece body kısmının güncellenmesi. Bunu nasıl yapabilirim şimdiden teşekkürler yardımlarınız için

soruldu: 13 Nis '15, 07:57

kurtomerfaruk's gravatar image

kurtomerfaruk
1.3k222940
cevap kabul oranı: 29%

update özelliğine centerdaki layout'un bulunduğu component'ın id sini vermen yeterli olacaktır.

(13 Nis '15, 08:05) Turgay Can Turgay%20Can's gravatar image

<p:menuitem value="#{messages.ActorHeading}..." outcome="/actor/index" update=":centerLayout"/>

<p:layoutunit position="center" id="centerLayout"> <ui:insert name="body"/> </p:layoutunit>

bu şekilde ddeğiştirdim fakat herhangi bir farklılık oluşmadı

(13 Nis '15, 08:19) kurtomerfaruk kurtomerfaruk's gravatar image

layout içinde genel bir form ekleyin. onun id'sini veriniz.

(13 Nis '15, 09:28) Turgay Can Turgay%20Can's gravatar image

Değişen birşey olmadı

(13 Nis '15, 10:29) kurtomerfaruk kurtomerfaruk's gravatar image

git yada bitbucket'a kodu atıp, paylaşırmısınız. Yaptığım uygulamalarda primefaces'ı böyle kullanıyorum. Sadece content layout'u içindeki genel bir formum var onun id'sini güncelletiyorum yeterli oluyor.

Tahminimce menunuzdeki istek ajax based değildir, o sebeple tüm sayfa refresh ediyordur.

<p:commandbutton value="Ajax Submit" id="ajax" update="contentFormId" actionlistener="#{buttonView.doSomething}" styleclass="ui-priority-primary"/>

(13 Nis '15, 14:50) Turgay Can Turgay%20Can's gravatar image

@J2EE https://github.com/kurtomerfaruk/LazyDataModel buradan bakabilirsiniz. Sayfanın geneli yenilendiğinden dolayı menü başa dönüyor

(13 Nis '15, 15:33) kurtomerfaruk kurtomerfaruk's gravatar image

Hocam vermiş olduğunuz linkte zaten Yazılmış p:ajax kullanılamıyor actionlistener olarak Yaptım bir değişiklik olmadı

(14 Nis '15, 01:59) kurtomerfaruk kurtomerfaruk's gravatar image

uygun zamanımda basit bir örnek kod yazmaya çalışacağım. outcome larla direkt statik linkler verildiği için ister istemez sayfanın hepsi refresh olur. content view'ini backend'den değişip, update etmeniz yeterli olacak aslında.

(14 Nis '15, 03:29) Turgay Can Turgay%20Can's gravatar image

Hocam yardımlarınız için teşekkürler

(14 Nis '15, 04:13) kurtomerfaruk kurtomerfaruk's gravatar image
10 yorumdan 5 tanesi gösteriliyor hepsini göster

Sadece içerik bölümünün güncellenmesi için link.

slideMenu ile nasıl yaparsın bilmiyorum ama refresh olayından sonra menüyü son haline getirmek daha iyi olacaktır.

permanent link

cevaplandı: 13 Nis '15, 09:24

SaRPaRDa's gravatar image

SaRPaRDa
5.0k213165
cevap kabul oranı: 27%

Ya da farklı bir yolla nasıl yapabilirim daha efektif bir şekilde nasıl kullanabilirim.

(13 Nis '15, 10:00) kurtomerfaruk kurtomerfaruk's gravatar image

Madem layout kullanıyorsun, o halde template kullanmasanda olur.

SessionScope kullanan bir bean içerisinde String tipinde bir değişken tanımla. Menü tıklandığına değişkene, menüde seçilen sayfanın adını gönder ve layout içerisindeki mainForm'u update et.

Bu şekilde istediğini elde edersin. Ama bununda dezavantajları olacaktır. Mesela form içerisinde form tanımlarsan jsf hatalı çalışacaktır. Buton neden çalışmıyor diye uğraşabilirsin. vs.

<p:layoutUnit position="center">
    <h:form id="mainForm">
       <ui:insert src="#{bean.pageAdress}.xhtml"/>
    </h:form>
</p:layoutUnit>

Javascript ile slideMenu'de aktif subMenu seçilebiliyormu acaba? Remote command ile istediğin menüye getirebilirdin. Bu konuyuda araştırsan daha iyi çözüm olur sanki.

Son olarak, menuBar kullanıp başka bir komponentle de kullanıcının hangi sayfada olduğunu gösterebilirsin. breadCrumb gösterim için iyi bir seçenek.

(13 Nis '15, 10:54) SaRPaRDa SaRPaRDa's gravatar image
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:

×97

Soruldu: 13 Nis '15, 07:57

Görüntüleme: 636 kez

Son güncelleme: 23 May '15, 10:51

powered by BitNami OSQA