Marioosh's developer diary RSS ICON Polish version

Statyczne(prawie) strony w playframework

Większość aplikacji czy też systemów zarządzania treścią posiada dymanicznie tworzoną treść. Jednak niekiedy część tej treści jest mniej dynamiczna. Zmienia się rzadko lub też wogóle. Przykładem mogą być takie strony jak "Regulamin" czy też "Polityka Prywatności".

Gdy do tworzenia aplikacji używamy dowolnego frameworka zgodnego z wzorcem MVC, treść takich stron powinna być przechowywana w bazie a pobierana przez kontroler.

Innym rozwiązaniem jest napisanie oddzielnej metody dla każdej strony i treść umieszczać w odpowiednim widoku. Pracując z Play Framework można to zrobić o wiele prościej.

Przypuśćmy, że mamy aplikację która ma stronę "Regulamin" jako semistatyczna.

Treść regulaminu umieszczamy w pliku app/views/Pages/regulamin.html.

W routes wpisujemy:

GET     /pages/{pageName}                 Pages.show

Tworzymy kontroler Pages ze zdefiniowaną metodą show:

    public class Pages extends Controller

        public static void show(String pageName){

            String filePath = String.format("app/views/Pages/%s.html", pageName);

            notFoundIfNull(Play.getVirtualFile(filePath));

            renderTemplate(filePath);

        }
    }

Jak to działa? Nie wiem czy trzeba tłumaczyć, ale w kilku zdaniach: Gdy w przeglądarce wpiszemy adres /pages/costam zostaniemy przekierowani do metody show kontrolera Pages gdzie costam zostanie użyte jako parametr metody.

Kontroler wtedy szuka pliku costam.html w folderze app/views/Pages i gdy znajduje - wyświetla go, w przeciwnym razie wyrzuca błąd 404 Not Found.

Kategoria: Programowanie         Tagi: Java Play Framework
Komentarze możliwe dzięki: Disqus