有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在liferay中使用EmailAddressLocalService

我正在尝试为一些使用liferay API的用户添加一个额外的电子邮件地址。 根据文件,我发现:

addEmailAddress(long userId, String className, long classPK, String address, int typeId, boolean primary) 

但是我有点迷路了,我不知道如何正确使用这个方法 我有这个

EmailAddressLocalServiceUtil.addEmailAddress(user.getUserId(),className, classPK, emailAddress2, typeId, false)

我不知道如何获得: -类名 -classPK -类型ID

是否有方法获取此参数,或者我需要手动指定此参数

要帮忙吗


共 (1) 个答案

  1. # 1 楼答案

    EmailAddressService用于存储与不同Liferay实体相关的电子邮件(例如,用户的联系人组织)。如果是联系人(您可能正在尝试做的事情)ClassNameContact.class.getName(),并且classPK是用户的联系人对象ID。TypeID是与当前实体相关的电子邮件地址类型的ID(对于联系人,类型是电子邮件地址123

    我有一个简单的groovy脚本,其功能如下:

    1. UserLocalServiceUtil
    2. 获取正确的className、classPK和typeID(portal.properties中的默认常量值)
    3. 向以前获得的用户添加新电子邮件地址

    代码:

    import com.liferay.portal.model.Contact
    import com.liferay.portal.model.ListTypeConstants
    import com.liferay.portal.model.User
    import com.liferay.portal.service.EmailAddressLocalServiceUtil
    import com.liferay.portal.service.ServiceContext
    import com.liferay.portal.service.UserLocalServiceUtil
    import com.liferay.portal.util.PortalUtil
    
    User user = UserLocalServiceUtil.getUserByScreenName(PortalUtil.getDefaultCompanyId(), "someuser")
    
    String className = Contact.class.getName()
    long classPK = user.getContactId()
    
    int typeId = ListTypeConstants.CONTACT_EMAIL_ADDRESS_DEFAULT
    
    EmailAddressLocalServiceUtil.addEmailAddress(
            user.getUserId(), className, classPK, "new@liferay.com", typeId, false, new ServiceContext())