我正在开发一个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 没有语法问题 什么,但外出不来,请帮助我。 我已经完成了另一个与此工作正常的相同。由于某些问题,我已经改变了我的工作区,这可能是原因,即使我问我的朋友这个问题,他告诉我没有关系到工作区的变化来在代码中创建一些问题。
答案 0 :(得分:0)
出现这个问题是因为我使用了一些组件,因为提交可能是按钮名称或输入类型=“提交”即创建该问题。我们必须始终尝试为组件提供一些唯一的名称,并且始终不使用预定义的方法名称等。 这解决了我的问题 感谢致敬 asif aftab