Fórum
metódus hívás velocity-ből
Balázs Csönge, modificado 8 Anos atrás.
metódus hívás velocity-ből
Regular Member Postagens: 107 Data de Entrada: 10/11/14 Postagens Recentes
Sziasztok!
Arra keresek választ, hogy hogyan tudnék egy web content velocity template-ben olyan linket/gombot kitenni, amire klikkelve meghívásra kerülne egy adott util, adott metódusa, paraméterezve?
Az már megvan, hogy adatok megjelenítéséhez miként tudok adatokat kérni egy util-tól (azaz a util-om lekérő és beállító metódusai is elvben elérhetők a velocity irányából).
Üdv.
Balázs
Arra keresek választ, hogy hogyan tudnék egy web content velocity template-ben olyan linket/gombot kitenni, amire klikkelve meghívásra kerülne egy adott util, adott metódusa, paraméterezve?
Az már megvan, hogy adatok megjelenítéséhez miként tudok adatokat kérni egy util-tól (azaz a util-om lekérő és beállító metódusai is elvben elérhetők a velocity irányából).
Üdv.
Balázs
Adorján Nagy, modificado 8 Anos atrás.
RE: metódus hívás velocity-ből
Junior Member Postagens: 34 Data de Entrada: 21/10/10 Postagens Recentes
Szia Balázs!
Web content template-ben minden további nélkül használhatóak az alábbi Liferay-es utility classok:
1) paramUtil
2) portalUtil
3) dateUtil
valamint
4) renderRequest, request
5) themeDisplay,
6) user objektumok
Például:
$groupId = $getterUtil.getLong($groupId)
Liferay belső / custom servicek hívása pedig a servicelocator segítségével történik:
#set ($journalArticleService =
$serviceLocator.findService('com.liferay.portlet.journal.service.JournalArticleLocalService'))
És a használata pedig:
##
## Get Job Posts
##
#set ($articles = $journalArticleService.getStructureArticles($groupId,$structureId))
Fontos, hogy a service locator alapesetben nem használható, engedélyezni kell az alábbi portal-ext.properties beállításokkal (újraindítás szükséges):
velocity.engine.restricted.classes=
velocity.engine.restricted.variables=
Arra ügyelj, hogy engedélyezés után bármilyek Liferay-es belső service (custom service) meghívható, ezért nagyon figyelj oda hogy web content szerkesztésre melyik usernek adsz jogosultságot.
Üdv,
Adorján
Web content template-ben minden további nélkül használhatóak az alábbi Liferay-es utility classok:
1) paramUtil
2) portalUtil
3) dateUtil
valamint
4) renderRequest, request
5) themeDisplay,
6) user objektumok
Például:
$groupId = $getterUtil.getLong($groupId)
Liferay belső / custom servicek hívása pedig a servicelocator segítségével történik:
#set ($journalArticleService =
$serviceLocator.findService('com.liferay.portlet.journal.service.JournalArticleLocalService'))
És a használata pedig:
##
## Get Job Posts
##
#set ($articles = $journalArticleService.getStructureArticles($groupId,$structureId))
Fontos, hogy a service locator alapesetben nem használható, engedélyezni kell az alábbi portal-ext.properties beállításokkal (újraindítás szükséges):
velocity.engine.restricted.classes=
velocity.engine.restricted.variables=
Arra ügyelj, hogy engedélyezés után bármilyek Liferay-es belső service (custom service) meghívható, ezért nagyon figyelj oda hogy web content szerkesztésre melyik usernek adsz jogosultságot.
Üdv,
Adorján
Balázs Csönge, modificado 8 Anos atrás.
RE: metódus hívás velocity-ből
Regular Member Postagens: 107 Data de Entrada: 10/11/14 Postagens Recentes
Szia!
Ezeken túl vagyok, mármint odáig eljutottam, hogy egy általam csinált osztály metódusa segítségével lekért dolgokat kiírjak.
Ami a kérdés lenne, hogy ha ennek az osztálynak van egy olyan metódusa, amivel valami állítok server oldalon (pl. felveszek egy rekordot egy táblába), akkor azt a metódust hogyan tudom meghívni, hogyan kell a linket összeállítani, stb?
Tehát mondjuk az alábbi módon érem el az osztályom:
#set($velocityRaptor = $serviceLocator.findService("bmp-liferay-portlet", "hu.fornax.bmp.common.helper.VelocityRaptor"))
Ennek tudok a $velocityRaptor.getEzMegAz() metódusával kiírni ezt, meg azt.
De tegyük fel, van egy addValamiToDB() metódusom, akkor hogyan tudok egy olyan gombot/linket csinálni, ami megnyomására meghívódik ez?
Ezeken túl vagyok, mármint odáig eljutottam, hogy egy általam csinált osztály metódusa segítségével lekért dolgokat kiírjak.
Ami a kérdés lenne, hogy ha ennek az osztálynak van egy olyan metódusa, amivel valami állítok server oldalon (pl. felveszek egy rekordot egy táblába), akkor azt a metódust hogyan tudom meghívni, hogyan kell a linket összeállítani, stb?
Tehát mondjuk az alábbi módon érem el az osztályom:
#set($velocityRaptor = $serviceLocator.findService("bmp-liferay-portlet", "hu.fornax.bmp.common.helper.VelocityRaptor"))
Ennek tudok a $velocityRaptor.getEzMegAz() metódusával kiírni ezt, meg azt.
De tegyük fel, van egy addValamiToDB() metódusom, akkor hogyan tudok egy olyan gombot/linket csinálni, ami megnyomására meghívódik ez?
Balázs Csönge, modificado 8 Anos atrás.