我正在开发一个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>
当用户点击Edit url时,我想将选定的行项发送到portlet类。但我不知道该怎么做。我怎么能这样做?
答案 0 :(得分:4)
根据您的评论,您似乎需要帮助构建网址。
因此,您可以在for
循环内构建URL,如:
如果您想使用这些详细信息来执行某些数据库操作,例如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,如下所示:
<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开发几乎所有概念的好书。
希望这有帮助。
答案 1 :(得分: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类中,您可以像这样调用您的方法:
public preparedEditComplex(ActionRequest actionRequest, ActionResponse actionResponse) {
//Your implementation
...
}
@ProcessAction(name="preparedEditComplex")
public preparedEditComplex(ActionRequest actionRequest, ActionResponse actionResponse) {
//Your implementation
...
}
通过这种方式,您可以编写更清晰,更易读的代码。 :)
干杯