0

我正在开发一个liferay portlet。这不是我第一次这样做,而是得到一个简单的错误,我不明白为什么会出现这个错误。当我单击提交按钮时,我收到此错误

未找到请求的资源。“http://localhost: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));                  
    }
}
4

1 回答 1

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 { 
       // ...
   }
}
于 2012-10-12T11:03:55.077 回答