“找不到请求的资源”在liferay portlet中提交表单时

时间:2012-10-12 10:03:48

标签: liferay

我正在开发一个liferay portlet。这不是我第一次这样做,但得到一个简单的错误,我无法理解为什么我会收到此错误。当我点击提交按钮时,我收到此错误

  

找不到请求的资源。 " HTTP://本地主机:8081 / addProduct命令"

我尝试解决它的时间超过了几个小时,我知道我犯了一个愚蠢的错误。任何人都可以帮我解决这个问题吗?任何帮助都提前感谢。这是我的jsp代码:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ page import="javax.portlet.PortletURL" %>

<portlet:defineObjects />

This is the <b>ServiceBuilderTest</b> portlet.
<portlet:actionURL var="addProduct" name="addProductAction"/>

<aui:form method="post" action="addProduct">
    <aui:fieldset>
        <aui:input name="productName" label="Product Name"></aui:input>
        <aui:input name="userID" label="User ID"></aui:input>
        <aui:input name="companyID" label="company ID"></aui:input>
        <aui:input name="groupID" label="Group ID"></aui:input>     
        <aui:input name="serialNumber" label="Serial Number"></aui:input>   
        <aui:button type="submit" value="Submit"></aui:button>  
    </aui:fieldset>
</aui:form>

这是我的portlet类代码:

public class ServiceBuilderPortlet extends MVCPortlet{
    public void addProductAction(ActionRequest actionReauest, ActionResponse         actionResponse) throws SystemException, PortalException
    {               
        String productName = actionReauest.getParameter("productName");
        String userID = actionReauest.getParameter("userID");
        String companyID = actionReauest.getParameter("companyID");
        String groupID = actionReauest.getParameter("groupID");
        String serialNumber = actionReauest.getParameter("serialNumber");
        PRProduct product =     PRProductLocalServiceUtil.addProduct(Long.parseLong(companyID), Long.parseLong(groupID),     productName, 
                serialNumber, Long.parseLong(userID));                  
    }
}

1 个答案:

答案 0 :(得分:0)

制作

<portlet:actionURL var="addProduct" name="addProductAction"/>
<aui:form method="post" action="<%=addProduct%>">
   ...

实际上,我认为最佳做法是不将动作命名为“addProductAction”,而只是“addProduct”,因此更改将如此(包括一行java,其余的看起来很好(视觉上,不是试图/测试):

<portlet:actionURL var="addProduct" name="addProduct"/>
<aui:form method="post" action="<%=addProduct%>">
  ....

public class ServiceBuilderPortlet extends MVCPortlet{
   public void addProduct(ActionRequest request, ActionResponse response) throws SystemException, PortalException { 
       // ...
   }
}