我正在使用hook ...
将新方法添加到CalEventLocalServiceImpl
中
我的代码是..
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>
我的问题是如何从jsp文件中使用 getUserData 。 任何人都可以帮助我......
我认为你没有我的问题...我希望从日历中基于 USERID 的事件列表...来实现这个任务我需要做什么?
答案 0 :(得分:4)
我假设getUserData()没有被覆盖,而是一个新方法(目前无法查找)。这不是覆盖服务时可以执行的操作。相反,您必须添加新服务并将其提供给门户网站。
请记住,在门户类加载器中运行自定义(“挂钩”)jsp,而重载服务在钩子的类加载器中运行。因此,如果您创建新服务并使service.jar可用于Liferay(例如,在全局类路径上),则可以从JSP调用它。 Liferay服务的界面无法通过重载服务进行扩展。
如果getUserData()已经在界面中(正如我所说我目前无法查找),你只需要从你的jsp中调用CalendarLocalServiceUtil,它就会被委托给你的包装器。
答案 1 :(得分:3)
只是为了添加奥拉夫的回答和评论......
如果你想用&#34; getUsetData&#34;扩展CalEventLocalService服务。并且在一个jsp中使用它比构建自己的服务可能有点矫枉过正。只需将您的代码放在&#34; getUserData&#34;在jsp中。否则请遵循奥拉夫的建议。