merhaba, login sayfası yerine logini index sayfasında yaptırmak istiyorum.Bunun için primefaces ile dialogLogin kullanmak istiyorum. showcase primefaces

Resme tıkladığımda dialog pencresi çıkıyor kullanıcı giriş yaptığında resim kayboluyor.Bunlar tam istediğim şeyler fakat bazı componentlerin kullanıcı girişinden sonra görünmesini nasıl sağlayabilirim? dinamik olarak?

<f:ajax render=":out" /> ile denedim fakat

<h:outputText id="out" value="girişten sonra görünecek" rendered="#{loginbean.logged}" />

girişten sonra #{loginbean.logged} değişkeni true yapıyorum.Fakat bunu dinamik olarak bir türlü rendered e gösteremiyorum.

public void login(ActionEvent actionEvent) {
    RequestContext context = RequestContext.getCurrentInstance();
    FacesMessage msg = null;
    boolean loggedIn = false;

    if (username != null && username.equals("admin") && password != null
            && password.equals("admin")) {
        loggedIn = true;
        setLogged(true);

        msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome",
                username);
    } else {
        loggedIn = false;
        setLogged(false);

        msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Login Error",
                "Invalid credentials");
    }

    FacesContext.getCurrentInstance().addMessage(null, msg);
    context.addCallbackParam("loggedIn", loggedIn);
}

private boolean logged; değişkeni tanımladım yukarıda. login fonksiyonu çağrıldığında eğer girerse true oluyor.

mesela örnekte #dinamik giriş yapmadan önce görünecek. giriş yapınca #dinamik kaybolup #dinamik1 görünmesi gerek.Fakat bir türlü başaramadım. KOD:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui">

<h:head></h:head> <body>

<h:outputText id="dinamik" value="giriş yapınca kaybolacak #{!dene.logged}"
    rendered="#{!dene.logged}" />
<h:outputText id="dinamik1" value="giriş yapınca görünecek" rendered="#{dene.logged}"/>
<h:outputLink id="loginLink" value="javascript:void(0)"
    onclick="dlg.show()" title="login">
    <h:outputText value="Giriş Yapmak İçin Tıkla" />
</h:outputLink>

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

<p:dialog id="dialog" header="Login" widgetVar="dlg">
    <h:form>

        <h:panelGrid columns="2" cellpadding="5">

            <h:outputLabel for="username" value="Username:" />
            <p:inputText value="#{dene.username}" id="username" required="true"
                label="username" />

            <h:outputLabel for="password" value="Password:" />
            <h:inputSecret value="#{dene.password}" id="password"
                required="true" label="password" />

            <f:facet name="footer">
                <p:commandButton id="loginButton" value="Login" update=":growl"
                    actionListener="#{dene.login}"
                    oncomplete="handleLoginRequest(xhr, status, args)" >
                    <f:ajax render=":dinamik :dinamik1" execute="@form"></f:ajax>
            </p:commandButton>
            </f:facet>

        </h:panelGrid>

    </h:form>
</p:dialog>

<script type="text/javascript">  
function handleLoginRequest(xhr, status, args) {  
    if(args.validationFailed || !args.loggedIn) {  
        jQuery('#dialog').effect("shake", { times:3 }, 100);

    } else {  
        dlg.hide();  
        jQuery('#loginLink').fadeOut();  
    }  
}
</script>

</body> </html>

tek isteğim kullanıcı girdiğinde sayfa yenilenmeden bazı bölümlerin görünümü değişsin.saklama olayını anladım fakat gizli bi componenti nasıl gösterebilirim sorun orada?

umarım anlatabilmişimdir. Teşekkürler

soruldu: 02 Mar '14, 05:50

Ergin's gravatar image

Ergin
768814
cevap kabul oranı: 50%


yeni farkediyorum.

<h:panelGroup id="out">

<--Güncellenecek Code'lar buraya-->

</h:panelgroup>

<f:ajax/> bile gerek yok <p:commandbutton update=":out"/> ile yaptığımda güncelliyor.Peki update ile dış bir div id güncelleyemez miyim ? teşekkürler

permanent link

cevaplandı: 02 Mar '14, 08:01

Ergin's gravatar image

Ergin
768814
cevap kabul oranı: 50%

Güncellersin, update=":form:componentId" şeklinde vermen yeterlidir.

(02 Mar '14, 08:03) Turgay Can Turgay%20Can's gravatar image

illa bir form içinde olmak zorunda mı ? panelgroup kullanınca form içinde dışında farketmiyor nerede olursa olsun güncelleyebiliyor içini.

(02 Mar '14, 08:10) Ergin Ergin's gravatar image

Böyle bir zorunluluk yok tabiki genel olarak bir form içinde tüm component'lar kullanıldığı için yazdım. ID hiyerarşisini doğru verdiğiniz dürece çalışır.

(02 Mar '14, 08:52) Turgay Can Turgay%20Can'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:

×281
×41
×1
×1

Soruldu: 02 Mar '14, 05:50

Görüntüleme: 1,245 kez

Son güncelleme: 02 Mar '14, 08:52

powered by BitNami OSQA