Liferay 中的动作是如何工作的?

How do actions work in Liferay?

我找过这个问题,但没有找到。

我不知道你的情况,但我一点也不了解 Liferay 教程。它太大且无法解释。这让我对 Actions 在 Liferay 中的工作方式和一对麻烦的测试产生了很大的误解。


鉴于此介绍,让我们快速了解一下:Liferay 操作如何工作?

谢谢!

编辑:

我尝试了第一个答案,但我之前尝试过非常相似的东西。它不起作用,但我在控制台上收到此错误;我真的不知道这是否是个问题:

Load denied by X-Frame-Options: https://www.google.es/?gfe_rd=ssl&ei=8Sc8V5OkBYGFaLiHksgO does not permit cross-origin framing.

在你的 my_action.jsp

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

Hello : <b> <%=request.getAttribute("user-test") %></b>

<portlet:defineObjects />
//The name here is used to call the process action method you define for your action
<portlet:actionURL name="myAction" var="myActionUrl"></portlet:actionURL>



<aui:form action="${myActionUrl}">
    <aui:input name="inputField"></aui:input>
    <aui:button-row>
        <aui:button type="cancel" />
        <aui:button type="submit" value="save" />
    </aui:button-row>
</aui:form>

并且比 portlet class

public class CustomMVCPortlet extends MVCPortlet {

    public void myAction(ActionRequest actionRequest,
            ActionResponse actionResponse) throws IOException,     PortletException, PortalException, SystemException{
       //get value inserted in form 
        String userName = ParamUtil.get(actionRequest, "inputField", StringPool.BLANK);
       //her you send back your data to use in the jsp
        actionRequest.setAttribute("user-test", userName);
    }

从动作到方法的映射是使用 actionRequest.setAttribute 中的名称和 class 中方法的名称完成的,它扩展了 MVCPortlet 并使用标签 <portlet-class>fully.qulified.name</portlet-class> 进行了定义WEB-INF/portlet.xml 如果未找到任何方法,则抛出 PortletException