这是我的view.jsp:
<portlet:actionURL name="getTravelId" var="travelIdUrl">
</portlet:actionURL>
for (Travel t : list) {
<a href="<%=travelIdUrl%>"><%=t.getId() %></a>
}
然后在课堂上:
@ProcessAction(name="getTravelId")
public void getSelectedTravelId(ActionRequest request, ActionResponse response){
String idTravel = request.getParameter("idTravel");
System.out.println("TRAVEL ID: " + idTravel);
}
我尝试发送如下参数:
<a href="<%=travelIdUrl%>?travelId="<%=t.getId()%>""><%=t.getId() %></a>
但没有工作。
还尝试将actionURL放入其中,仍然无法正常工作
for (Travel t : list) {
<portlet:actionURL name="getTravelId" var="travelIdUrl">
<portlet:param name="idTravel" value="<%t.getId()%>"/>
</portlet:actionURL>
<a href="<%=travelIdUrl%>"><%=t.getId() %></a>
}
有没有人有解决方案?感谢..
答案 0 :(得分:2)
您肯定使用<portlet:param>
标记在正确的路径上向portlet URL添加参数。也许你可以尝试使用更多的JSTL和更少的scriptlet。尝试更像下面的代码段。
<c:forEach items='${list}' var="travel">
<portlet:actionURL name="getTravelId" var="travelIdUrl">
<portlet:param name="idTravel" value="${travel.id}"/>
</portlet:actionURL>
<a href="${travelIdUrl}">${travel.id}</a>
</c:forEach>
答案 1 :(得分:1)
在上一个例子中究竟什么不起作用?我认为你正在将Java代码与HTML和标签混合在一起。在JSP中尝试这个例子:
<c:forEach var="t" items="${list}">
<portlet:actionURL name="getTravelId" var="travelIdUrl">
<portlet:param name="idTravel" value="${t.id}"/>
</portlet:actionURL>
<a href="${travelIdUrl}">${t.id}</a>
</c:forEach>
它使用给定的id参数为list
中的每个项创建一个锚点。该示例仅使用HTML和标记以及JSP表达式语言来访问变量。