我想要獲得友好的URL映射,以便爲Liferay 6.1內部的Spring MVC portlet工作並失敗。Liferay 6.1 + Spring MVC Portlet 4.0:友好的URL映射
我到liferay-portlet-xml
添加是根據現有的手動和博客的例子,並按如下:
<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>search</friendly-url-mapping>
<friendly-url-routes>com/.../friendly-url-routes.xml</friendly-url-routes>
與friendly-url-routes.xml
是
<!DOCTYPE routes PUBLIC "-//Liferay//DTD Friendly URL Routes 6.1.0//EN"
"http://www.liferay.com/dtd/liferay-friendly-url-routes_6_1_0.dtd">
<routes>
<route>
<pattern>/{match}</pattern>
<generated-parameter name="foo">{match}</generated-parameter>
</route>
</routes>
我的Spring MVC的控制器是這樣
@Controller
@RequestMapping("VIEW")
public class CarModelController {
@ActionMapping
public void action(@RequestParam("foo") final String testParam,
final ActionRequest request, final ActionResponse response) {
this.logger.info("default action");
this.logger.info("testParam = {}", testParam);
}
@RenderMapping
public String render(final RenderRequest request, final RenderResponse response) {
this.logger.info("default render");
return "index";
}
}
如果我使用0123調用我的portlet只發生渲染階段輸出,不調用操作方法。
如果我創建使用
<portlet:actionURL var="lastStepUrl">
<portlet:param name="foo" value="bar" />
</portlet:actionURL>
的Liferay產生像/baseurl/-/search/bar?p_auth=sometoken&p_p_lifecycle=1
外觀的URL此頁面的鏈接。它正確執行操作階段,我也可以直接調用該URL。但是,它確實包含我想擺脫的p_auth
和p_p_lifecycle
參數。
任何建議熱烈歡迎。
我不瞭解Liferay,但是我會首先看看POST/GET中發生的事情,即'portlet:actionUrl'正在產生,與您直接使用類似Chrome的開發工具或FireFox螢火。然後你可以使用curl,從一個可以工作的請求的確切副本開始,然後開始移除,直到停止工作。這將確定是什麼導致一個請求觸發,另一個請求不觸發。需要尋找的東西:HTTP請求類型(POST/GET/etc。),任何正在發送的頭文件,正在發送的任何POST/GET vars等。 – CodeChimp