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

时间:2012-04-14 18:19:32

标签: liferay

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

我在MVC Portlet类中有这两个方法

public void addBook(ActionRequest request, ActionResponse response) {

}

public void deleteBook(ActionRequest request, ActionResponse response) {

}

在用户界面中,用户可以执行不同的操作,例如添加,删除书籍

现在使用addBook方法工作正常,我是否需要编写一个单独的portlet:actionURL和auiform也在UI中进行deleteBook Action ??

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

如果是这样的话,如何在一个页面中有两个表格?

1 个答案:

答案 0 :(得分:2)

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

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

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