1

我有 2 个 jsp 页面“/page1.jsp”、“/page2.jsp”和“file.java”,从“/page1”提交表单后,我想执行操作方法从数据库中获取一些记录并转到带有我拥有的记录的“/ page2”并列出它。一切都完成了,但由于某种原因,我无法转到“/page2”页面,它把我带到了其他地方(另一个 .jsp 页面)。

我正在使用 liferay 并扩展 MVCPortlet 类

提前致谢!!!。

public void AddCustomer(ActionRequest actionRequest, ActionResponse actionResponse) throws                  IOException, PortletException {

    ...

    pCustomer.setCustomerId(customerId);

    // set UI fields
    pCustomer.setName(cusName);
    pCustomer.setAddress(address);
    pCustomer.setComments(comments);
    try {
        PCustomerLocalServiceUtil.addPCustomer(pCustomer);
    } catch (com.liferay.portal.kernel.exception.SystemException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    ...
}

addCustomer.jsp:

<portlet:actionURL var="addCustomersAct" name="AddCustomer">
<portlet:param name="jspPage" value="/allCustomers.jsp"/>
</portlet:actionURL>  
<form method="post" action="<%= addCustomersAct %>">
 ...
</form>

allCustomers.jsp

<%for (PCustomer allCustomer : customers) { %>
<tr>
 ...//List of all customers
</tr>
<% } %>

在 addCustomers.jsp 之上,我还有一些 portlet 参数,因为我有一个侧边菜单,并且我需要它们来处理渲染请求。

4

4 回答 4

2

在您的 addCustomer.jsp 中创建一个 renderURL 并将其作为隐藏参数提供为重定向 url

...
    <portlet:renderURL var="redirectURL">
    <portlet:param name="jspPage" value="/html/yourhtmlpath/confirm.jsp"/>
    </portlet:renderURL>
...

<form>
    ...
        <aui:input name="redirectURL" type="hidden" value="${redirectURL}"></aui:input>
    ...
</form>

完成任务后,在您的 processAction 方法中:

...
    actionResponse.sendRedirect(ParamUtil.getString(actionRequest, "redirectURL"));
...
于 2013-06-20T15:01:59.673 回答
1

catch块之后,您可以添加以下代码语句。

actionResponse.sendRedirect("page2.jsp");
于 2013-05-07T09:26:10.057 回答
0

好吧希望看到更多的代码片段。这里是转发请求到另一个jsp

    String destination = "page2.jsp"; // using relative path here
        RequestDispatcher rd = getServletContext().getRequestDispatcher(destination);
        rd.forward(request, response);

确保您为目标 jsp 使用正确的路径

于 2013-05-07T09:09:13.477 回答
0
 In place of mul change the object according to your requirement whatever value you want which is redirected to jsp
        actionRequest.setAttribute("mul",mul);
        actionResponse.setRenderParameter("jspPage", "/jsp/b.jsp");
In jsp:
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects />
<h6>Mul</h6>
<%= renderRequest.getAttribute("mul") %>
于 2013-05-08T04:24:26.227 回答