<portlet:actionurl>无法在liferay中执行操作页面</portlet:actionurl>

时间:2013-11-16 08:59:45

标签: liferay-6

我正在开发一个liferay portlet,我刚从view.jsp页面调用了一个动作函数。 我已经在以前的portlet中实现了这个代码,但现在我不知道为什么它不起作用 portlet的代码是 在view.jsp

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

 <portlet:actionURL var="insert" name="interlope"></portlet:actionURL>

 <script type="text/javascript" charset="utf-8">    
  function embedFun()
  { 
 try
 {
 alert(insert.toString());
      document.getElementById('insertpart').action='<%=insert.toString()%>';                                 
 document.getElementById('insertpart').submit();
 }
 catch(err)
 {
     alert("embedfun of shop_search view.jsp: "+err);
 }
     } 
      </script> 


and my action class is 

package com.shop.search;

import java.io.IOException;
import java.rmi.RemoteException;
import java.sql.Date;
import java.util.List;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.ProcessAction;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;

import shop.search.item.model.Cart;
import shop.search.item.model.Item;
import shop.search.item.model.available;
import shop.search.item.model.impl.CartImpl;
import shop.search.item.service.CartLocalServiceUtil;
import shop.search.item.service.ItemLocalServiceUtil;
import shop.search.item.service.availableLocalServiceUtil;

import com.liferay.compat.portal.util.PortalUtil;
import com.liferay.counter.service.CounterLocalServiceUtil;
import com.liferay.portal.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.portal.model.PortletPreferences;
import com.liferay.portal.model.User;
import com.liferay.portal.theme.ThemeDisplay;
import com.liferay.util.bridges.mvc.MVCPortlet;

/**
 * Portlet implementation class Shop_SearchPortlet
 */
public class Shop_SearchPortlet extends MVCPortlet 
{

    @ProcessAction(name="interlope")
    public void interlope(ActionRequest req, ActionResponse res)
            throws PortletException, SystemException,  RemoteException
            {
                String searchVal=req.getParameter("inputText");
                List<Item> tbl=null;
                if(searchVal!=null)
                {
                    tbl=ItemLocalServiceUtil.findItemByBrand(searchVal);
                    if(tbl!=null)
                    {
                        req.setAttribute("tblval",tbl);
                        System.out.println("@@@@@@@@@@@@ val of obj:  "+tbl);


    enter code here
                    }
                    else
                        System.out.println("@@@@@@@@   val of tbl obj: "+tbl);      
                }   
            }}
`                                                                                   //redirect to insert action class
 { 
     try
     {
     alert(insert.toString());
     document.getElementById('insertpart').action='<%=insert.toString()%>';                              
     document.getElementById('insertpart').submit();
     }
     catch(err)
     {
         alert("embedfun of shop_search view.jsp: "+err);
     }
} 
</script>

<form method="post" id="insertpart">
    <table>
     <tr>       
            <td>
                <input type="text" id="inputText" name="inputText">
                <input type="button" value="search" name="submitbutton" onclick="embedFun();">
            </td>
        </tr>
     <tr>
        </tabale>

如果你在我的代码中注意到我在javascript代码中添加了try和catch块到insert的值是什么,我得到插入没有值意味着没有插入的url  没有语法问题 什么,但外出不来,请帮助我。   我已经完成了另一个与此工作正常的相同。由于某些问题,我已经改变了我的工作区,这可能是原因,即使我问我的朋友这个问题,他告诉我没有关系到工作区的变化来在代码中创建一些问题。

1 个答案:

答案 0 :(得分:0)

出现这个问题是因为我使用了一些组件,因为提交可能是按钮名称或输入类型=“提交”即创建该问题。我们必须始终尝试为组件提供一些唯一的名称,并且始终不使用预定义的方法名称等。 这解决了我的问题 感谢致敬 asif aftab