在5.X板就已經有了這個好用的功能,在Liferay service.xml裡定義的remote-service,幾乎都會被轉為JSON提供使用。

 

在5.X版以後的使用法如下;

可以使用普通的html標籤來引用service.js;

<script src="/html/js/liferay/service.js" language="JavaScript"> </script>

or for the extension environment:

<script src="/html/js/liferay/ext_service.js" language="JavaScript"> </script>

 

當js檔可使用後,便可以用下面的方式來呼叫Liferay為我們產生的JSON方法;

    Liferay.Service.NAMESPACE.ENTITY.METHOD(
        {
            PARAMETER_1: VALUE_1,
            PARAMETER_2: VALUE_2
        },
        function(message) {
            var exception = message.exception;

            if (!exception) {
                // Process Success
            }
            else {
                // Process Exception
            }
        }

 

十分好用,在6.2版中有稍微做了變動,一般來說在本機輸入以下網址:http://localhost:8080/api/jsonws

就可以查詢到目前所定義的JSON SERVICE方法。

 

呼叫的方式也有點不大一樣;

    Liferay.Service(
'entity/method',
{ PARAMETER_1: VALUE_1, PARAMETER_2: VALUE_2 }, function(message) { var exception = message.exception; if (!exception) { // Process Success } else { // Process Exception } }

 

6.2版把JSON方法做成像這樣:/TSMC-Forum-portlet.forummessage/update-answer

 

所以要用以上字串才能夠呼叫到正確的方法。

 

參考資料:

 

https://www.liferay.com/community/wiki/-/wiki/Main/JSON+Service+API#section-JSON+Service+API-How+to+generate+the+JSON+API

 

https://www.liferay.com/documentation/liferay-portal/6.2/development/-/ai/json-web-services-liferay-portal-6-2-dev-guide-05-en

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 squall75726 的頭像
    squall75726

    菜鳥工程師的Liferay Portal學習筆記

    squall75726 發表在 痞客邦 留言(0) 人氣()