Liferay 6:对于每个方法,我都需要一个单独的actionURL吗

Liferay 6:对于每个方法,我都需要一个单独的actionURL吗,liferay,Liferay,我在MVCPortlet类中有这两个方法 public void addBook(ActionRequest请求,ActionResponse响应){ } public void deleteBook(ActionRequest请求、ActionResponse响应){ } 在UI中,用户可以执行不同的操作,如添加、删除书籍 现在,addBook方法可以很好地工作了,我是否还需要为deleteBook操作在UI中编写一个单独的portlet:actionURL和auiform 我是Lifera

我在MVCPortlet类中有这两个方法

public void addBook(ActionRequest请求,ActionResponse响应){
}
public void deleteBook(ActionRequest请求、ActionResponse响应){
}
在UI中,用户可以执行不同的操作,如添加、删除书籍

现在,addBook方法可以很好地工作了,我是否还需要为deleteBook操作在UI中编写一个单独的portlet:actionURL和auiform

我是Liferay的新手,请原谅这些愚蠢的问题


如果是这样的话,一页中怎么可能有两个表单???

您需要的方法与操作名称一样多:

<portlet:actionURL name="addBook" var="addBookURL" />
<aui:form action="<%= addBookURL.toString() %>" method="post"> ... </aui:form>

<portlet:actionURL name="deleteBook" var="deleteBookURL" />
<aui:form action="<%= deleteBookURL.toString() %>" method="post"> ... </aui:form>

fyi: see what your actionURLs look like: <br/>
<%=addBookURL.toString()%><br/>
<%=deleteBookURL.toString()%><br/> 

... 
... 
仅供参考:查看ActionURL的外观:


如果您希望有更少的方法,但仍然有操作名称,您还可以重写processAction(ActionRequest请求、ActionResponse响应)并自己处理条件(操作名称)。如果一个表单执行多个操作,您可以在一个操作中处理它,并确定您获得的内容,例如,按下了哪个按钮。或者使用Javascript在提交时设置表单操作URL