2012-03-17 61 views
2

我使用鉤子添加一個新的方法爲CalEventLocalServiceImpl ...在Hook環境中添加自定義方法?

我的代碼..

public class MyCalendarLocalServiceImpl extends CalEventLocalServiceWrapper { 

    public MyCalendarLocalServiceImpl(CalEventLocalService calEventLocalService) { 
     super(calEventLocalService); 
     // TODO Auto-generated constructor stub 
    } 

    public List getUserData(long userId) throws SystemException{ 
     DynamicQuery query=DynamicQueryFactoryUtil.forClass(CalEvent.class) 
     .add(PropertyFactoryUtil.forName("userId").eq(userId)); 
     List deatils=CalEventLocalServiceUtil.dynamicQuery(query); 

     return deatils; 
    } 
} 

liferay-hook.xml

<service> 
    <service-type> 
     com.liferay.portlet.calendar.service.CalEventLocalService 
    </service-type> 
    <service-impl> 
     com.liferay.portlet.calendar.service.impl.MyCalendarLocalServiceImpl 
    </service-impl> 
</service> 

我的問題是如何使用getUserData從jsp文件。 任何人都可以幫我....

我覺得你沒GT我的問題......我想基於USERID從日曆...事件的列表來實現這一任務,我需要做的??

回答

4

我假設getUserData()沒有被覆蓋,但是一個新的方法(當前不能查找)。在重寫服務時,這不是您可以執行的操作。相反,您必須添加新的服務並將其提供給門戶。

請記住,在門戶類加載器中正在運行定製(「掛鉤」)jsp,而您的重載服務正在鉤子的類加載器中運行。因此,如果您創建一個新服務並使liferay可以使用service.jar(例如在全局類路徑中),則可以從JSP中調用它。 Liferay服務的接口不能通過重載服務來擴展。

如果getUserData()已經在接口中(正如我所說我目前無法查找),那麼您只需從jsp調用CalendarLocalServiceUtil並將其委託給包裝器。

+1

您不能將其添加到「in」中,但創建單獨的服務沒有問題。 – 2012-03-17 20:09:18

+2

創建一個全新的服務(不要僅使用新方法擴展現有服務)。然後將從此插件獲得的* -service.jar放到全局類路徑中,以便Liferay(根Web應用程序)可以訪問它。然後使用這個服務從你的jsp – 2012-03-18 15:17:55

3

只需添加到奧拉夫的回答和評論...

如果你只想與「getUsetData」延長CalEventLocalService服務,並用它在一個JSP比建立自己的服務可能是矯枉過正。簡單地把你的代碼從「getUserData」放到jsp中。否則,請遵循奧拉夫的建議。

+0

你能看到這個並幫助我... http://stackoverflow.com/questions/9764640/how-to-get-all-the-users-list-in-kaleo-workflow -on-分配到組合框 – Prem 2012-03-19 10:36:05

相關問題