1

我正在开发一个liferay portlet。这是我在jsp文件中的代码:

<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>

当用户单击编辑 url 时,我想将选定的行项发送到 portlet 类。但我不知道该怎么做。我怎样才能做到这一点?

4

2 回答 2

4

根据您的评论,您似乎需要帮助构建 URL。

for因此,您可以在循环内构造 URL,例如:

如果您想使用这些详细信息来执行一些数据库操作,例如updateinsert

<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>

或者,如果您想根据这些字段呈现(或显示)某些页面,则使用 Render URL,如下所示:

<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>

如果您可以参考一些关于 portletURL 以及如何使用它们的概念,这也会有所帮助。有很好的教程可供使用,这也是Portlets in Action一本关于几乎所有 portlet 开发概念的好书。

希望这可以帮助。

于 2012-06-28T06:07:07.450 回答
1

Prakash K 的回答真的很好!只需添加一件有用的东西。当您创建一个 portlet 操作 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>

因此,在您的 portlet 类中,您可以像这样调用您的方法:

Liferay 6.x

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

生命射线 5.2

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

通过这种方式,您可以编写更清晰、更易读的代码。:)

干杯

于 2012-06-29T21:34:58.657 回答