留言板

metódus hívás velocity-ből

Balázs Csönge,修改在8 年前。

metódus hívás velocity-ből

Regular Member 帖子: 107 加入日期: 14-11-10 最近的帖子
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
thumbnail
Adorján Nagy,修改在8 年前。

RE: metódus hívás velocity-ből

Junior Member 帖子: 34 加入日期: 10-10-21 最近的帖子
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
Balázs Csönge,修改在8 年前。

RE: metódus hívás velocity-ből

Regular Member 帖子: 107 加入日期: 14-11-10 最近的帖子
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?
Balázs Csönge,修改在8 年前。

RE: metódus hívás velocity-ből (答复)

Regular Member 帖子: 107 加入日期: 14-11-10 最近的帖子