Tôi đang làm việc với: Liferay 6.0.6 với JBoss 5.1 và struts2.Lấy sử dụng Liferay hiện tại bằng cách sử dụng mã Java đơn giản
Câu hỏi của tôi là, cách để người dùng hiện tại ở Liferay sau khi đăng nhập, sử dụng mã Java.
Tôi đang làm việc với: Liferay 6.0.6 với JBoss 5.1 và struts2.Lấy sử dụng Liferay hiện tại bằng cách sử dụng mã Java đơn giản
Câu hỏi của tôi là, cách để người dùng hiện tại ở Liferay sau khi đăng nhập, sử dụng mã Java.
Trong phương pháp doView/processAction bạn làm sau
User user = (User) request.getAttribute(WebKeys.USER);
hoặc sử dụng các đối tượng ThemeDisplay. Nó chứa một thông tin khác như companyId, groupId, ...
ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
Lớp học ThemeDisplay, User nad WebKeys là một phần của portal-service.jar.
Nếu bạn cần chỉ là một số id để xác định người sử dụng hiện tại bạn cũng có thể sử dụng
String userId = request.getRemoteUser();
Giải pháp này không phải là Liferay cụ thể và nên linh động trong JSR-286 cổng.
cảm ơn bạn rất nhiều :) Tôi sẽ kiểm tra tất cả điều này và tôi sẽ cho bạn biết – Sabrina
bạn có thể cho tôi biết thêm về ví dụ "yêu cầu". làm thế nào để khởi tạo nó? – Sabrina
hoặc là RenderRequest, ActionRequest, EventRequest hoặc ResourceRequest. Nếu bạn không quen với chúng thì bạn nên đọc một số hướng dẫn về portlet, ví dụ: http://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/understanding-the-two-phases-of- portlet-execution –
Liferay cung cấp util lớp
com.liferay.portal.util.PortalUtil
Lớp này chứa tất cả các phương pháp hữu ích để có được những thuộc tính thường được sử dụng.
Thử sử dụng phương thức PortalUtil.getUser(PortletRequest portletRequest)
để tránh tạo đối tượng và tham chiếu mới.
Sự khác biệt với ThemeDisplay là gì? – cheloncio
@ zelon, không có gì, bạn lấy themeDisplay từ yêu cầu, và sau đó getUser() từ nó, PortalUtil.getUser() lấy cùng từ yêu cầu, nếu bạn thấy PortalImpl.getUser() thì bạn sẽ thấy request.getAttribute (WebKeys này). NGƯỜI DÙNG); –
Đây là một cách khác có thể làm điều đó:
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
sử dụng bởi id đăng nhập? –
Ý tôi là, giải pháp phải là Mã Java và chúng tôi phải truy xuất người dùng hiện tại bằng E-mail :) – Sabrina