从@RenderMapping方法的portlet级别到页面级别重定向

时间:2016-01-19 15:46:30

标签: java spring jsp liferay portlet

当页面加载时,我需要重定向到控制器级别的另一个页面。 我已经尝试了很多。但我无法找到办法。因此,作为控制器级别的变通方法,我将一个标志变量放到' ModelMap'并且在' JSP'和' JS'级别我读取并使用javascript重定向。

window.location   

我觉得这不是一个更好的方法。关注" getConfirmationPage"是加载页面时执行的方法。

我也试过

response.sendRedirect("https://stackoverflow.com/?p=1"); 

但那个也不适合我。

任何人都可以提出最佳做法。 我在我的项目中使用spring4 / liferay 6.2.4 / portlet / JSP作为技术。这是与portlet相关的问题。

@Controller
@RequestMapping("VIEW")
public class ConfirmationController extends AbstractControllerTemplate {


@RenderMapping
public ModelAndView getConfirmationPage(
        RenderRequest req,
        PortletSession session) {
  ModelMap mm = new ModelMap();
 //conditionally need to redirect to different liferay page not portlet
  return new ModelAndView("confirmation", mm);
}

编辑 这是我的逻辑 我的传入网址就像这个https://stackoverflow.com/?p=2,但逻辑上p = 2对他来说无效。所以我尝试做的是将他重定向到p = 1

https://stackoverflow.com/?p=1

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码行来解决您的问题。变量响应应该是PortletResponse / ResourceResponse的类型。

Running 2 test cases...
Test: f 1//1 2//2 3//3 4//4\r\n
Test: f 1/1/ 2/2/ 3/3/ 4/4/\r\n
Test: f 1/1/1 2/2/2 3/3/3 4/4/4\r\n
Test: f 1/1/1 2/2/2 3//3 4//4\r\n
Test: f 1/1/ 2/2/ 3/3/ 4/4/4\r\n

*** No errors detected

以下是详细说明您的要求的示例代码段。

HttpServletResponse res =PortalUtil.getHttpServletResponse(response)

快乐编码!!!!