2012-05-04 43 views

Trả lời

27

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.

+0

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

+1

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

+2

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 –

6

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.

+0

Sự khác biệt với ThemeDisplay là gì? – cheloncio

+0

@ 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); –

6

Đây là một cách khác có thể làm điều đó:

private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance(); 
User currentUser=liferayFacesContext.getUser() 
Các vấn đề liên quan