как передать выбранный идентификатор пользователя в класс действий?

Я создал портлет, в котором программно добавляю пользователей. Теперь я могу добавлять и просматривать пользователей. Чтобы изменить пользователя, я создал <liferay-ui:icon-menu> и добавил две опции (Редактировать и Деактивировать). Теперь, нажав или выбрав соответствующие кнопки действий пользователей (Изменить/Деактивировать), мне нужно отправить выбранный идентификатор пользователя в мой класс действий. Как только я получу идентификатор пользователя в своем классе действий, я вызову метод UserLocalServiceUtil.updateUser() с обновленными значениями. Может ли кто-нибудь сказать мне, как я могу отправить выбранный идентификатор пользователя в свой класс действий.

Мой код выглядит следующим образом:

View.jsp

<liferay-ui:search-container delta="10" emptyResultsMessage="no-users-were-found">
        <liferay-ui:search-container-results
                results="<%=UserLocalServiceUtil.getUsers(searchContainer.getStart(), searchContainer.getEnd())%>"
        total="<%=UserLocalServiceUtil.getUsersCount()%>" />
        <liferay-ui:search-container-row className="com.liferay.portal.model.User" keyProperty="userId"        modelVar="user">

                <liferay-ui:search-container-column-text name="name" value="<%= user.getFullName() %>"/>
                <liferay-ui:search-container-column-text name="first-name" property="firstName"        />
                <liferay-ui:search-container-column-text name="last-name" property="lastName" />
                <liferay-ui:search-container-column-text name="screen-name"        property="screenName"/>
                <liferay-ui:search-container-column-jsp align="right" path="/html/users/custom_user_actions.jsp" />

        </liferay-ui:search-container-row>
        <liferay-ui:search-iterator />
</liferay-ui:search-container>
<liferay-ui:search-container delta="10" emptyResultsMessage="no-users-were-found" />

custom_user_actions.jsp

<liferay-ui:icon-menu>  
  <portlet:actionURL name="edit" var="edit">
          <portletaram name="action" value="edit" />
  </portlet:actionURL>
  <liferay-ui:icon image="edit" message="Edit" url="<%=edit.toString() %>" />

  <portlet:actionURL name="deactivate" var="deactivate">
          <portletaram name="action" value="deactivate" />
  </portlet:actionURL>
  <liferay-ui:icon image="deactivate" message="deactivate" url="<%= deactivate.toString() %>" />
</liferay-ui:icon-menu>

Класс действий

public void edit(ActionRequest request, ActionResponse response) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException{
                  System.out.println("<<<< Controller add() method has been called >>>>>>>>>");

          }


        public void deactivate(ActionRequest request, ActionResponse response) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException{
                  System.out.println("<<<< Controller delete() method has been called >>>>>>>>>");

          }

Может ли кто-нибудь предложить мне, как передать выбранный идентификатор пользователя строки моему классу действий.

Заранее спасибо.


person Vinod    schedule 31.03.2015    source источник
comment
Вы должны использовать атрибут rowChecker поискового контейнера liferay. Обратитесь к блогам по адресу lalitjugran.blogspot.com/2013/07. / или elimoasis.com/web/ Циншэн/добро пожаловать/-/блоги/   -  person Pankaj Kathiriya    schedule 31.03.2015
comment
@PankajKathiriya, я попробовал ваше предложение, добавив атрибут rowChecker в контейнер поиска liferay. Теперь я могу видеть флажки для каждой строки. Но как я могу отправить метод rowID edit() в классе действий. Не могли бы вы объяснить это больше в соответствии с моим требованием. заранее спасибо   -  person Vinod    schedule 31.03.2015
comment
Я установил соответствующий идентификатор пользователя строки в параметре liferay-container-row. Теперь, как я могу получить параметр в классе действий. Любое предложение, пожалуйста   -  person Vinod    schedule 31.03.2015


Ответы (1)


Получите соответствующий идентификатор пользователя в custom_user_actions.jsp и передайте его в качестве параметра вашему классу действий.

Добавьте следующий код в custom_user_actions.jsp

<%
 ResultRow resultRow = (ResultRow)request.getAttribute(WebKeys.SEARCH_CONTAINER_RESULT_ROW);
 User userObj = (User)resultRow.getObject();
 %>

И передать параметр следующим образом:

<portlet:actionURL name="edit" var="edit">
          <portletaram name="selectedId" value="<%String.valueOf(user.getUserId())%>" />
  </portlet:actionURL>
  <liferay-ui:icon image="edit" message="Edit" url="<%=edit.toString() %>" />

Получите параметр в своем классе действий как,

public void edit(ActionRequest request, ActionResponse response) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException{

String usrID = ParamUtil.getString(request, "selectedId")
                  System.out.println("<<<< Controller add() method has been called >>>>>>>>>");

          }

Надеюсь, это может помочь вам :)

person Prasad    schedule 01.04.2015