在JSP页面中,我可以使用它在Liferay中发出AJAX请求:
PortletURL portletURL = response.createRenderURL();
portleturl.setWindowState(LiferayWindowState.EXCLUSIVE);
我将这个
portletURL
作为URL传递给下面的JQuery函数jQuery.ajax({
type: "POST",
url: portleturl ,
success: function(msg) {
alert( "Data Saved: " + msg );
}
});
这是我在
struts.xml
文件中的操作映射:<action name="helloForm" class="com.action.Struts2Action">
<result name="input">/WEB-INF/view/index.jsp</result>
<result name="success">/WEB-INF/view/result.jsp</result>
</action>
现在,请告诉我如何将名为
helloForm
的动作设置为portletURL
? 最佳答案
这在Liferay的代码中很常见。例如,在this JSP file中,将使用由定义的参数创建链接
<portlet:param name="struts_action" value="/asset_publisher/edit_subscription" />
(指向巨大的Liferay
struts-config.xml
文件中的此action mapping)。因此,我想您只需要以相同的方式将参数添加到您的URL,唯一的区别是使用
PortletURL
对象:PortletURL portletURL = response.createRenderURL();
portleturl.setWindowState(LiferayWindowState.EXCLUSIVE);
portletURL.setParameter("struts_action", "helloForm");