добавление пользовательских методов в среду Hook? - PullRequest
2 голосов
/ 17 марта 2012

Я добавляю новый метод в 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. Кто-нибудь может мне помочь ....

я думаю, что вы не получили мой вопрос ... я хочу список событий на основе USERID из Календаря ... чтобы выполнить эту задачу, что мне нужно сделать ??

Ответы [ 2 ]

4 голосов
/ 17 марта 2012

Я предполагаю, что getUserData () не переопределен, но новый метод (в настоящее время не может искать). Это не то, что вы можете сделать при переопределении службы. Вместо этого вам нужно будет добавить новую Службу и сделать ее доступной для портала.

Помните, что настроенный ("подключенный") jsp работает в загрузчике классов портала, в то время как ваша перегруженная служба работает в загрузчике классов ловушки. Таким образом, если вы создаете новый сервис и делаете service.jar доступным для Liferay (например, по глобальному пути к классам), вы можете вызывать его из JSP. Интерфейс сервисов Liferay не может быть расширен через перегруженный сервис.

В случае, если getUserData () уже находится в интерфейсе (как я уже сказал, я не могу сейчас искать), вам просто нужно вызвать CalendarLocalServiceUtil из вашего jsp, и он будет делегирован вашей обертке.

3 голосов
/ 19 марта 2012

Просто чтобы добавить к ответу и комментариям Олафа ...

, если вы хотите расширить службу CalEventLocalService с помощью просто "getUsetData" и использовать его в одном jsp, то создание собственного сервиса может быть излишним.Просто поместите ваш код из "getUserData" в JSP.В противном случае следуйте советам Олафа.

...