0
<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) {

}

在 UI 中,用户可以有不同的操作,如添加、删除书

现在使用 addBook 方法可以正常工作,我是否还需要在 UI 中为 deleteBook Action 编写单独的 portlet:actionURL 和 auiform ?

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

如果是这样,一页怎么会有两种形式?

4

1 回答 1

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 request, ActionResponse response) 并自己处理条件(动作名称)。如果一个表单执行多个操作,您可以在一个操作中处理它并确定您获得什么内容,例如按下了哪个按钮。或者使用 Javascript 在提交时设置表单操作 URL。

于 2012-04-15T12:20:26.997 回答