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 AuthenticatedWebApplication. Tím přibudou k implementaci dvě metody:
- getWebSessionClass()
- getSignInPage()
Metoda getWebSessionClass() 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).
WicketApplication.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ů.


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

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

Odhlášení.

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í.

Dalším zdrojem informací je oficiální stránka - wicket.apache.org a podrobná uživatelská příručka - wicket.apache.org/start/userguide.html.
Inspirace (stránky používající 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 37x (35.99 kB)
Aplikace je včetně zdrojových kódů v jazyce Java