<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的新手,请原谅这些愚蠢的问题。
如果是这样的话,如何在一个页面中有两个表格?
答案 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。