我正在尝试使用JavaScript中的特定参数重定向到portlet。我根据用户单击的链接来获取参数(这部分是确定的,我得到了我需要的所有数据),然后构造一个URL,尝试通过简单的JS window.location获取。

我的控制器:

@RenderMapping
public String view(Model model){
    model.addAttribute("some", "stuff");
    return "myPortlet/view";
}

@ActionMapping(params = "action=importantAction")
public void doAction(ActionRequest request, ActionResponse response){
    String foo = request.getParameter("one");
    String bar = request.getParameter("two");
    System.out.println("Got " + one + " & " + two);
}


我的JS:

function myFunction(one_val, two_val){
    window.location = "http://www.my.url.com/nameOfMyPortlet?one=" + one_val +
        + "&two=" + two_val + "&action=importantAction";
}


这将重定向到正确的页面,但是action参数不断被忽略,并且整个doAction方法都没有执行。

如何从JavaScript将action参数传递给目标Portlet?

我正在使用Liferay和Spring MVC。

谢谢!

最佳答案

您是否尝试过通过以下方式创建操作网址?

var portletURL = new Liferay.PortletURL('ACTION_PHASE');
            portletURL.setWindowState(“ maximized”);
在portletURL中,您可以设置所需的参数来调用操作。

以下链接供参考

http://www.liferay.com/web/eduardo.lundgren/blog/-/blogs/liferay-portleturl-in-javascript

07-24 17:22