我正在尝试使用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