すべてのデータがリストに保存され、各行に編集ボタンがあるHTMLテーブルの編集ボタンをクリックしてすべてのテキストボックスに入力してフォームを開こうとしています。[編集]をクリックすると、restaurant.jspページからedit_restaurant.jspページにリダイレクトされます。
私のrestuarant.jspページには1つのHTMLテーブルリストがあり、各行に編集ボタンがあります。その編集ボタンをクリックすると、edit_restaurant.jspページにリダイレクトされ、すべてのデータがバインドされたidキーでいっぱいになります。私の編集ボタンに。
私が欲しいのは、liferayカスタムmvcポートレットを使用して、別のjsp button..amでボタンのIDを取得することです。そうすれば、誰でもそれを可能にする方法を教えてくれます。
これが私が試したコードのスニペットです。
以下は私の編集ボタンの列です:
<td><input type="submit" id=<%=temprest.getPrimaryKey()s%> onclick="return getbuttonId('<%=temprest.getPrimaryKey() %>')" value="edit" /></td>
...そしてそのボタンをクリックすると、次のJavascriptが呼び出されます。
<script type="text/javascript">
function getbuttonId(sid){
// document.editform.action=url;
// document.editform.submit();
var url="<%= editURL.toString()%>";
window.location.href = url+"?sid="+sid;
return false ;
}
</script>
私のポートレットアクションのURLは次のとおりです。
<portlet:actionURL name="editRestaurant" var="editURL">
</portlet:actionURL>
...そして、ポートレットアクションURLを介して呼び出しているメソッドは、アクションクラスにあります。
public void editRestaurant(ActionRequest reqeust,ActionResponse response) throws Exception
{
String str= reqeust.getParameter("sid");
long l=Long.valueOf(str);
//Retriev table data using Primary key
restaurant rest=restaurantLocalServiceUtil.getrestaurant(l);
//Set Attribute which has all values of specified pk.
reqeust.setAttribute("edit",rest );
// Redirect to Jsp page which has Update form.
response.setRenderParameter("jspPage","/jsps/edit_restaurant.jsp");
}
編集機能をクリックするとこんなエラーが出ました
java.lang.NoSuchMethodException: emenu.advertise.portlet.RestaurantPortlet.editRestaurant?sid=5(javax.portlet.ActionRequest, javax.portlet.ActionResponse)
誰かがこれを修正するために私を案内してもらえますか?
@
ここでは、ページがリダイレクトされる前に、ボタンIDに割り当てられたsid値をこの文字列値に転送する必要があります
<%
String restId=request.getParameter("sid");
//can i call sid value of javascript function getbuttonId() here
%>
<portlet:actionURL name="editRestaurant" var="editURL">
<portlet:param name="key" value="<%=restId %>"/>
</portlet:actionURL>