© 2011 IBA CZ, s.r.o. Spring Portlet MVC Rastislav Papp Tomáš Polešovský IBA CZ, s.r.o. Agenda ● Frameworky na tvorbu portletov ● Spring Core - IoC Container ● Spring Portlet MVC ● Konfigurácia aplikácie pre použitie frameworku ● @Controller vs. Portlet ● Anotácie ● Lokalizácia Frameworky na tvorbu portletov ● V drvivej väčšine vychádzajú z prostredia servletov a fungujú ako most medzi portletmi a servletmi (portlet-bridge) ● Snažia se napasovať svoj spôsob myslenia na portlety - nepodporujú vývoj portletov natívne ● Request-basd (push) frameworky se ťažko vysporiadavajú s viacerými fázami (render, action, resource, event) ● Spring Portlet MVC podporuje vývoj portletov natívne, nie pomocou portlet-bridge Spring Core - IoC Container ● Aplikácia beží v Springovom IoC kontajneri ● Jednotlivé objekty (beany) aplikácie sú vytvárané Springom ● Beany, ktoré majú závislosti na iných beanoch, sa nestarajú o ich vytváranie, len deklarujú že ich potrebujú, a Spring im ich nastaví automaticky Spring Portlet MVC ● Vychádza z Spring Web MVC ● Ak viete používať Web MVC, viete aj Portlet MVC ● Zmeny reflektujú portletové prostredie s dôrazom na anotácie ● Controller ● jednoduchý POJO objekt ● Definujeme anotáciou @Controller a @RequestMapping ● Zastupuje funkciu portletu ● Model ● Slúži na predanie dát medzi Controllerom a View ● View ● Prezentačná technológia, môže byť ľubovoľná ● Zväčša JSP + JSTL ● Velocity, Freemarker, Tiles, ... Konfigurácia ● Vo web.xml je nutné deklarovať Springovský listener a Servlet a môžme uviesť lokáciu hlavného konfiguračného súboru applicationContext.xml (ale nieje to nutné, defaultne sa hľadá na ceste WEB- INF/applicationContext.xml) ● Samotné portlety v portlet.xml: org.springframework.web.portlet.DispatcherP ortlet ● Jednotlivé konfiguračné súbory portletov deklarujeme tiež v portlet.xml, alebo sa hľadajú na ceste WEB-INF/- portlet.xml Spring Portlet MVC pomocou anotácií ● Anotácia @Controller ● Anotácia @RequestMapping - VIEW, EDIT, ... + ďaľšie parametre ● Metódy @XXXMapping - podľa názvu portletového módu ktorého požiadavky obsluhujú: ● @RenderMapping - doView ● @ActionMapping - processAction ● @EventMapping - processEvent ● @ResourceMapping - serveResource ● Signatúra metód nieje predpísaná, programátor si ju volí sám ● @InitBinder, @RequestParam, @ModelAttribute, ... Lokalizácia ● Podpora lokalizácie ● Zadefinovať bean s názvom 'messageSource' (konkrétne ukážky v príklade) v konfiguračnom súbore portletu ● V JSP môžeme na vytiahnutie hlášky z ResourceBundlu použiť tag zo springovského taglibu: ● Ten sa nahradí hodnotou kľúča Nabudúce ● @RequestParam ● Tvorba formulárov - @ActionMapping, @InitBinder, @ModelAttribute, ... ● Validácia ● ...