使用Liferay 6.2 GA1平台
如何在Struts portlet操作类方法processAction中获取新创建的用户的用户ID,我将覆盖/ admin_user / edit_user操作,
目的:在动作类中获取新创建的用户ID,并将其保存到另一个表(在另一个数据库中)。
public void processAction(
StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, ActionRequest actionRequest,
ActionResponse actionResponse)
throws Exception {
ThemeDisplay themeDisplay =
(ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
Long currentuser = themeDisplay.getUserId();
if (currentuser != null) {
log.info("Wrapped /admin_server/edit_user action");
}
originalStrutsPortletAction.processAction(
originalStrutsPortletAction,
portletConfig,
actionRequest,
actionResponse);
User selUser = (User) actionRequest.getAttribute("USER");
log.info("User ID : "+selUser.getUserId());
}
但是获取的用户ID是登录用户的用户ID。
如何获取新用户ID?
答案 0 :(得分:3)
只调用originalStrutsPortletAction的processAction不会确认是否会创建用户。
所以你必须通过SessionErrors.isEmpty(actionRequest)
检查SessionErrors是否为空。
检查此条件后,您可以使用以下代码获取新创建用户的userId。
ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
WebKeys.THEME_DISPLAY);
UserLocalServiceUtil.getUserIdByEmailAddress(themeDisplay.getCompanyId(), ParamUtil.getString(
actionRequest, "emailAddress"))