在liferay中添加acustom字段时出现问题

在liferay中添加acustom字段时出现问题,liferay,hook,liferay-6,liferay-theme,Liferay,Hook,Liferay 6,Liferay Theme,我通过创建用户详细信息表单并调用UserLocalServiceUtil.addUser()手动创建用户。一切正常,我可以添加新用户。单击“我的用户详细信息”表单中的“保存”按钮后,我将表单详细信息发送到我的操作类addUser()。在这个方法中,我调用以下方法来创建用户 try { UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password1,

我通过创建用户详细信息表单并调用
UserLocalServiceUtil.addUser()
手动创建用户。一切正常,我可以添加新用户。单击“我的用户详细信息”表单中的“保存”按钮后,我将表单详细信息发送到我的操作类
addUser()
。在这个方法中,我调用以下方法来创建用户

try {
                UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password1,
                    password2, autoScreenName, screenName, emailAddress, mySite, openId,
                    locale, firstName, middleName, lastName, prefixId, suffixId, male,
                    birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
                    organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);


            } catch(Exception e){
                System.out.println(e.getMessage());
            }  
用户正在使用上述代码创建。但问题是,我想在添加用户时也添加自定义字段值。添加自定义字段的代码如下:

if(user.getExpandoBridge().hasAttribute("manager"))
                    {

                            user.getExpandoBridge().setAttribute("manager", manager);
                            System.out.println("Custom field is avaliable now !!! Update User entry ");
                    }
                    else
                    {
                            user.getExpandoBridge().addAttribute("manager");
                            user.getExpandoBridge().setAttribute("manager", manager);
                            System.out.println("Custom field is not avaliable !!! Update User entry ");
                    }
现在如何执行
addUser()
方法中的代码。我的问题是,我通过调用
UserLocalServiceUtil.addUser()
以编程方式添加用户,因此这里没有新创建的用户ID。因此,如果没有用户ID,我如何为新用户获取用户对象并执行自定义字段的插入逻辑

有什么建议吗

我需要同时创建具有自定义字段值的用户


提前感谢..

UserLocalServiceUtil.addUser方法返回创建的用户-即用户类的实例。您可以使用该实例添加expando属性(如果需要,它的id已初始化)

另一个解决方案是为UserLocalService创建服务包装器。服务包装器扩展了原始服务实现并进行了进一步的定制。在您的情况下,您可以重写addUser方法,让原始实现添加用户(super.addUser(…),然后添加expando属性


有关更多详细信息,请参阅Liferay 6.2开发人员指南。

UserLocalServiceUtil.addUser方法返回创建的用户,即用户类的实例。您可以使用该实例添加expando属性(如果需要,它的id已初始化)

另一个解决方案是为UserLocalService创建服务包装器。服务包装器扩展了原始服务实现并进行了进一步的定制。在您的情况下,您可以重写addUser方法,让原始实现添加用户(super.addUser(…),然后添加expando属性


有关更多详细信息,请参阅Liferay 6.2开发人员指南。

UserLocalServiceUtil.addUser方法返回创建的用户,即用户类的实例。您可以使用该实例添加expando属性(如果需要,它的id已初始化)

另一个解决方案是为UserLocalService创建服务包装器。服务包装器扩展了原始服务实现并进行了进一步的定制。在您的情况下,您可以重写addUser方法,让原始实现添加用户(super.addUser(…),然后添加expando属性


有关更多详细信息,请参阅Liferay 6.2开发人员指南。

UserLocalServiceUtil.addUser方法返回创建的用户,即用户类的实例。您可以使用该实例添加expando属性(如果需要,它的id已初始化)

另一个解决方案是为UserLocalService创建服务包装器。服务包装器扩展了原始服务实现并进行了进一步的定制。在您的情况下,您可以重写addUser方法,让原始实现添加用户(super.addUser(…),然后添加expando属性

有关更多详细信息,请参阅《Liferay 6.2开发人员指南》。

试试这个

try {
          User newUser =  UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password1,
                password2, autoScreenName, screenName, emailAddress, mySite, openId,
                locale, firstName, middleName, lastName, prefixId, suffixId, male,
                birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
                organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);


        } catch(Exception e){
            System.out.println(e.getMessage());
        }  
之后,对于expando值

if(newUser.getExpandoBridge().hasAttribute("manager"))
                {

                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is avaliable now !!! Update User entry ");
                }
                else
                {
                        newUser.getExpandoBridge().addAttribute("manager");
                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is not avaliable !!! Update User entry ");
                }
试试这个

try {
          User newUser =  UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password1,
                password2, autoScreenName, screenName, emailAddress, mySite, openId,
                locale, firstName, middleName, lastName, prefixId, suffixId, male,
                birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
                organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);


        } catch(Exception e){
            System.out.println(e.getMessage());
        }  
之后,对于expando值

if(newUser.getExpandoBridge().hasAttribute("manager"))
                {

                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is avaliable now !!! Update User entry ");
                }
                else
                {
                        newUser.getExpandoBridge().addAttribute("manager");
                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is not avaliable !!! Update User entry ");
                }
试试这个

try {
          User newUser =  UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password1,
                password2, autoScreenName, screenName, emailAddress, mySite, openId,
                locale, firstName, middleName, lastName, prefixId, suffixId, male,
                birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
                organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);


        } catch(Exception e){
            System.out.println(e.getMessage());
        }  
之后,对于expando值

if(newUser.getExpandoBridge().hasAttribute("manager"))
                {

                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is avaliable now !!! Update User entry ");
                }
                else
                {
                        newUser.getExpandoBridge().addAttribute("manager");
                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is not avaliable !!! Update User entry ");
                }
试试这个

try {
          User newUser =  UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password1,
                password2, autoScreenName, screenName, emailAddress, mySite, openId,
                locale, firstName, middleName, lastName, prefixId, suffixId, male,
                birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
                organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);


        } catch(Exception e){
            System.out.println(e.getMessage());
        }  
之后,对于expando值

if(newUser.getExpandoBridge().hasAttribute("manager"))
                {

                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is avaliable now !!! Update User entry ");
                }
                else
                {
                        newUser.getExpandoBridge().addAttribute("manager");
                        newUser.getExpandoBridge().setAttribute("manager", manager);
                        System.out.println("Custom field is not avaliable !!! Update User entry ");
                }