Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 12 - Wicket - Přihlašování, pokračování

Minulou lekci, Wicket - Přihlašování, jsme skončili vytvořením stránky pro přihlášení.

V této lekci přihlašování dokončíme.

Úprava WicketApplication

Naše WicketApplication (vstupní bod Wicketí aplikace) musí dědit od Authenticated­WebApplication. Tím přibudou k implementaci dvě metody:

  • getWebSession­Class()
  • getSignInPage()

Metoda getWebSession­Class() bude vracet naši session (ve které je implementována autorizační metoda) a metoda getSignInPage() bude vracet stránku pro přihlášení (kam bude uživatel přesměrován v případě, že není přihlášen - signedIn = false a zároveň požaduje stránku vyžadující autorizaci).

WicketApplica­tion.java

public class WicketApplication extends AuthenticatedWebApplication
{
    /**
     * @see org.apache.wicket.Application#getHomePage()
     */
    @Override
    public Class<? extends WebPage> getHomePage()
    {
        return HomePage.class;
    }

    /**
     * @see org.apache.wicket.Application#init()
     */
    @Override
    public void init()
    {
        super.init();
        // add your configuration here
    }

    @Override
    protected Class<? extends AbstractAuthenticatedWebSession> getWebSessionClass() {
        return BasicAuthenticationSession.class;
    }

    @Override
    protected Class<? extends WebPage> getSignInPageClass() {
        return LoginPage.class;
    }
}

Úprava editační stránky

Nyní upravíme editační stránku tak, aby se zobrazovala pouze přihlášeným uživatelům. Toho docílíme přepsáním metody onConfigure(), kterou mají všechny komponenty. Tato metoda se volá před tím, než je komponenta (stránka je také komponenta) vykreslena a používá se často pro nastavení viditelnosti (visible) komponenty nebo k jejímu aktivování (enable).

EditPage.java

@Override
protected void onConfigure() {
    super.onConfigure();

    AuthenticatedWebApplication application = (AuthenticatedWebApplication) Application.get();
    AuthenticatedWebSession session = AuthenticatedWebSession.get();
    if (!session.isSignedIn()) {
        application.restartResponseAtSignInPage();
    }
}

Ještě přidáme možnost odhlášení a to do menu v BasePage. Možnost odhlášení se bude zobrazovat pouze v případě, že je uživatel přihlášen. Opět tedy použijeme metodu onConfigure() nyní v komponentě Link.

BasePage.java

Link logoutLink = new Link("logout") {
    @Override
    public void onClick() {
        AuthenticatedWebSession.get().invalidate();
        setResponsePage(HomePage.class);
    }

    @Override
    protected void onConfigure() {
        super.onConfigure();
        if (AuthenticatedWebSession.get().isSignedIn()) {
            setVisible(true);
        } else {
            setVisible(false);
        }
    }
};
add(logoutLink);

BasePage.html

<li><a href="#" wicket:id="logout" class="logout"><wicket:message key="menu.logout"/></a></li>

Upravíme také styly.

style.css

#menu ul li:last-child {
    float: right;
}

#menu ul li a.logout {
    color: red;
    border: 1px solid red;
}

#menu ul li a.logout:hover {
    color: white;
    background-color: red;
}

Nezapomeňte na doplnění resources.

menu.logout=Odhl\u00E1\u0161en\u00ED
title.loginPage=P\u0159ihl\u00E1\u0161en\u00ED
text.login=P\u0159ihl\u00E1\u0161en\u00ED
form.username=U\u017Eivatelsk\u00E9 jm\u00E9no
form.password=Heslo
loginForm.username.Required=Nezadali jste u\u017Eivatelsk\u00E9 jm\u00E9no\!
loginForm.password.Required=Nezadali jste heslo\!


menu.logout=Logout
title.loginPage=Login
text.login=Login
form.username=Username
form.password=Password
loginForm.username.Required=You have not entered the username!
loginForm.password.Required=You have not entered the password!

Přihlášení k přidávání příspěvků.

Apache Wicket
Apache Wicket

Přidávání příspěvků.

Apache Wicket

Příspěvek byl přidán a je zobrazen na hlavní stránce.

Apache Wicket

Odhlášení.

Apache Wicket

Přiložený soubor obsahuje zdrojový kód vytvořené webové aplikace.


Závěr

Tímto dílem končí tento tutoriál. Ve dvanácti lekcích jsem se vám pokusil přiblížit webový framework Wicket. Pokud jste se někde zasekli či pokud vás tento framework nezaujal, mohu za to pravděpodobně já a můj způsob výkladu. Pokud se vám tento framework zalíbil a oceňujete jeho možnosti, dík patří vývojářům, kteří tento framework vyvíjeli a vyvíjí.

Pokud jste ve čtení dospěli až sem, chtěl bych vás poprosil o zpětnou vazbu (ať už pozitivní nebo negativní).

Popularita frameworku

To, zda framework přežije počáteční fázi a neskončí v propadlišti dějin, závisí na mnoha faktorech. Tím nejdůležitějším faktorem jsou lidé. Pokud framework dokáže k sobě přitáhnou lidi, kteří se mu věnují a obětují mu svůj čas, má velkou šanci na to, že zde bude ještě za pár dalších let. A čím více lidí se mu věnuje, tím více vzniká různých zdrojů, informací, tutoriálů, tipu a triků. A čím více informací je k dispozici, tím je více pravděpodobné, že bude framework používán a nadále rozvíjen.

Wicket je tu již od roku 2004. Od té doby vzniklo velké množství dalších Java webových frameworků a i přes to je Wicket stále používán. Wicket má aktivní komunitu. Je možné se přihlásit do mailing listu https://wicket.apache.org/help/email.html a požádat o pomoc s řešením problému. Dotazy je možné také pokládat na www.stackoverflow.com, kde bývají velmi rychle odpovězeny a jak ukazuje následující obrázek, každý den zde přibývají nové otázky a jejich řešení.

Apache Wicket

Dalším zdrojem informací je oficiální stránka - wicket.apache.org a podrobná uživatelská příručka - wicket.apache­.org/start/user­guide.html.

Inspirace (stránky používající Wicket)

www.agentika.com

Apache Wicket

www.blue-deals.de

Apache Wicket

www.soundpure.com

Apache Wicket

www.ties.com

Apache Wicket

www.vw-service-werbung.de

Apache Wicket

Další weby používající Wicket naleznete například na http://builtwithwicket.tumblr.com/. Tento web je samozřejmě také ve Wicketu :-).

V další lekci, Wicket - wEasy, si jako bonus představíme jednoduchý redakční systém.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 34x (35.99 kB)
Aplikace je včetně zdrojových kódů v jazyce Java

 

Předchozí článek
Wicket - Přihlašování
Všechny články v sekci
Apache Wicket
Přeskočit článek
(nedoporučujeme)
Wicket - wEasy
Článek pro vás napsal vita
Avatar
Uživatelské hodnocení:
4 hlasů
vita
Aktivity