gpt4 book ai didi

javascript - 如何在 MVC portlet 中通过 JavaScript 重定向到另一个 JSP 页面?

转载 作者:行者123 更新时间:2023-11-30 18:17:06 25 4
gpt4 key购买 nike

我试图通过单击 HTML 表上的编辑按钮填写每个文本框来打开我的表单,我的所有数据都存储在列表中,每行都有编辑按钮。当我点击编辑时,它会从 restaurant.jsp 页面重定向到 edit_restaurant.jsp 页面。

我的 restuarant.jsp 页面有一个 HTML 表格列表,其中每一行都有编辑按钮,我希望在单击该编辑按钮时我将重定向到 edit_restaurant.jsp 页面,其中所有数据都可以用 id 键填充绑定(bind)到我的编辑按钮。

我想要的是在另一个 jsp 按钮中获取按钮的 ID..我正在使用 liferay 自定义 mvc portlet 所以任何人都可以指导我如何实现它。

这是我试过的代码片段。

以下是我的编辑按钮栏:

<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>

我的 portlet 操作 url 如下:

<portlet:actionURL name="editRestaurant" var="editURL">

</portlet:actionURL>

...我通过 portlet 操作 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>

最佳答案

请阅读:

How to redirect to another webpage in JavaScript/jQuery?

查询不是必需的,window.location.replace(...) 将最好地模拟 HTTP 重定向。

它比使用 window.location.href = 更好,因为 replace() 不会将原始页面放入 session 历史记录中,这意味着用户不会陷入无休止的后退按钮失败。如果您想模拟某人点击链接,请使用 location.href。如果您想模拟 HTTP 重定向,请使用 location.replace。

例如:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

关于javascript - 如何在 MVC portlet 中通过 JavaScript 重定向到另一个 JSP 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13006323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com