Blogi

Käymme blogissamme läpi toimialan ajankohtaisia kehityssuuntia ja toimintamalleja sekä omia kokemuksiamme mielenkiintoisista aiheista.

Angularin MVC-mallin arkkitehtuuri portletissa

Angularin käyttö portletissa ei poikkea Angularin käytöstä “tavallisilla” web-sivuilla. Seppien esittämässä ratkaisussa ei käytetä muita kuin Angularin peruskirjastoa ja Angularin router-kirjastoa. Angular on MVC-framwork-kirjasto, ei komponenttikirjasto. Angular-pohjaisia komponenttikirjastoja on toteutettu useita, mutta tässä esimerkkiportletissa käytimme puhdasta HTML:aa kirjastokomponenttien sijasta. Angular (tai tarkemmin AngularJS) mainitaan usein MVC-arkkitehtuurimallin esimerkkinä. Pikemminkin malli on

Lue lisää

Angular SPA-portlet, avaussivun Javascript

Angular-SPA-portletin avaavan JSP-sivun Javascriptilla on tärkeä rooli, sillä siinä alustetaan globaalit Javascript-muuttujat. Mahdollisimman suuren osan Javascript-koodista pitäisi olla täysin yleiskäyttöistä. Tämä tarkoittaa lyhyitä ns. utility-metodeja, joilla ei ole sivuvaikutuksia. Näitä tiedostoja kannattaa kerätä yrityksessä ikäänkuin koodauksen pääomaksi. Koetellun yleiskäyttöisen koodin suhteellisen osuuden kasvu sovelluksen koodissa nostaa väistämättä sovelluksen laatua. Jo

Lue lisää

SPA-portletin JSP-avaussivun rakenne

Angular-kirjaston mukaanotto portlettiin on vastaava, kuin muillakin Javascript-kirjastoilla. Se määritellään liferay-portlet.xml sivulla. Google suosittelee Angularin käyttöönottoa websivun osoitteesta, esimerkiksi: <header-portlet-javascript>http://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js</header-portlet-javascript> Javascript-kirjastot on yksinkertaisinta ottaa mukaan nimenomaan “headerissa”, jolloin käytettöalue on koko sivu. Liferay-portlet.xml sivun sisältö on tavanomainen. Ajaxable-tagin arvoksi pitää laittaa true. Sovelluskohtaisia Javascript-tiedostoja kertyy useita JSP-portlettia kohden, koska Javascript-koodi

Lue lisää

SPA-portletin palvelurajapinnat ja data

Liferayn portaaliohjelmiston mukana asennetaan Liferayn tietokanta, jota käytetään portlettien Java-koodissa Liferayn API-rajapinnan kautta. Nämä rajapintakutsut sisältävät jo transaktion hallinnan (begin transaction ja commit/rollback). Mistä portletissa sitten haetaan käyttöliittymässä esitettävää dataa? Tässä on varteenotettava menetelmä, jossa on kaksi datalähdettä: 1. Käytetään Liferayn tietokantaa Liferay APIn kautta, joka on tehty tähän tarkoitukseen.

Lue lisää

SPA-portletin palvelinpään toteutus

SPA-portletin palvelinpuolen Java-koodi on yksinkertainen. Mitään MVC-mallin mukaista portlettia (esim. tavanomainen MVCPortlet) ei tarvita, koska MVC-arkkitehtuurimallin kontrolleri on clientilla, eli Javascript-koodi on kontrolleri. SPA-portlettiluokka on MVC-portlettiluokkaa merkittävästi yksinkertaisempi kahdessa mielessä: 1. Portletti huolehtii vain ensimmäisen JSP-sivun avaamisesta. Clientin Javascript-koodi huolehtii sivuvaihtoista. 2. Sovelluslogiikkaa ei ole enää action-metodeissa. Action-metodeja ei tarvita

Lue lisää