2012-06-27 2 views
1

Я разрабатываю портлет liferay. Вот мой код в файл JSP:Реализация Редактировать в портлете liferay

<table class="DDGridView"> 
<tr class="td"> 
    <td class="th">Complex Name</td> 
    <td class="th">City</td> 
    <td class="th">Status</td> 
</tr> 
<% 
    Complex complex; 
    for(int i = 0 ; i < complexList.size(); i++) 
    { 
     complex = (Complex)complexList.get(i); 
%> 
     <tr class="td"> 
      <td><%=complex.complexName %></td> 
      <td><%=complex.complexCity %></td> 
      <% 
       if(complex.isActive == 1) 
       { 
      %>    
        <td class="th">Active</td> 
      <% 
       } 
       else 
       { 
      %> 
        <td>Not Active</td> 
      <% 
       } 
      %> 
      <td><a href="<%=prepareEditComplexURL%>">Edit</a></td> 
      <td><a>Delete</a></td> 
     </tr> 
<% 
    } 
%> 
</table> 

Когда пользователь нажимает на Edit URL, я хочу, чтобы отправить выбранные элементы строки в класс портлета. Но я не знаю, как это сделать. Как я могу это сделать?

+0

Вы можете уточнить, что вы подразумеваете под «выбранными элементами строки». Как вы готовите 'prepareEditComplexURL' или вам нужна помощь в подготовке этого URL-адреса? –

+0

Нажав кнопку «Редактировать», вы переходите к методу в классе портлета. Внутри этого метода мне нужно знать complexName, complexCity и статус строки, нажав кнопку «Редактировать». – Karadous

ответ

4

К вашим комментариям кажется, что вам нужна помощь в построении URL-адресов.

Таким образом, вы можете построить URL внутри for петли, как:

Если вы хотите использовать эти данные, чтобы сделать некоторые операции с базами данных, как update или insert

<portlet:actionURL var="preparedEditComplexURL"> 
    <portlet:param name="complexName" value="<%=complex.complexName %>" /> 
    <portlet:param name="complexCity " value="<%=complex.complexCity %>" /> 
    <portlet:param name="status " value="<%=complex.isActive %>" /> 
</portlet:actionURL> 

Или, если вы хотите сделать (или показать) на какой-либо странице, в зависимости от этих полей, используйте URL-адрес Render, например:

<portlet:renderURL var="preparedEditComplexURL"> 
    <portlet:param name="complexName" value="<%=complex.complexName %>" /> 
    <portlet:param name="complexCity " value="<%=complex.complexCity %>" /> 
    <portlet:param name="status " value="<%=complex.isActive %>" /> 
</portlet:renderURL> 

Также это будет hel p, если вы можете ссылаться на некоторые понятия относительно portletURL и как их использовать. Есть хорошие учебные пособия, а также Portlets in Action - хорошая книга, посвященная почти всем концепциям развития портлетов в одном месте.

Надеюсь, это поможет.

1

Prakash K ответ на это очень хорошо! Просто добавьте одну вещь, которая может быть полезна. При создании URL портлета действий, позволяющее задать атрибут имени, как этот

<portlet:actionURL name="preparedEditComplex" var="preparedEditComplexURL"> 
    <portlet:param name="complexName" value="<%=complex.complexName %>" /> 
    <portlet:param name="complexCity " value="<%=complex.complexCity %>" /> 
    <portlet:param name="status " value="<%=complex.isActive %>" /> 
</portlet:actionURL> 

Так что в вашем классе портлета вы можете назвать свой метод так:

Liferay 6.x

public preparedEditComplex(ActionRequest actionRequest, ActionResponse actionResponse) { 
    //Your implementation 
    ... 
} 

Liferay 5,2

@ProcessAction(name="preparedEditComplex") 
public preparedEditComplex(ActionRequest actionRequest, ActionResponse actionResponse) { 
    //Your implementation 
    ... 
} 

Таким образом, вы можете написать чистого ап d более читаемый код. :)

Cheers

Смежные вопросы