Liferay 5.2:扩展BaseFriendlyURLMapper,未触发populateParams()方法

Liferay 5.2:扩展BaseFriendlyURLMapper,未触发populateParams()方法,liferay,friendly-url,Liferay,Friendly Url,我尝试在Liferay5.2-Jboss4.2应用服务器下扩展BaseFriendlyURLMapper。。。buildPath()方法没有问题,但我无法理解何时触发populateParams()。。。甚至在调试模式下都没有 这是我的liferayportlet.xml 图书接口 my.package.MyConfiguration 假的 假的 假的 my.package.MyFriendlyURLMapper 真的 真的 这是MyFriendlyURLMapper.java 公共类MyF

我尝试在Liferay5.2-Jboss4.2应用服务器下扩展BaseFriendlyURLMapper。。。buildPath()方法没有问题,但我无法理解何时触发populateParams()。。。甚至在调试模式下都没有

这是我的
liferayportlet.xml


图书接口
my.package.MyConfiguration
假的
假的
假的
my.package.MyFriendlyURLMapper
真的
真的
这是
MyFriendlyURLMapper.java

公共类MyFriendlyURLMapper扩展了BaseFriendlyURLMapper{
私有静态最终字符串\u PORTLET\u ID=“myPortlet\u WAR\u myPortlet”;
私有静态最终字符串\u PORTLET\u MAPPING=“myPortlet”;
私有静态最终字符串\u LIFECYCLE\u RENDER=“0”;
私有静态最终字符串\u LIFECYCLE\u ACTION=“1”;
私有静态最终字符串\u LIFECYCLE\u RESOURCE=“2”;
公共字符串getPortletId(){
返回_PORTLET_ID;
}
公共字符串getMapping(){
返回PORTLET_MAPPING;
}
公共字符串构建路径(LiferayPortletURL portletURL){
字符串friendlyURLPath=null;
字符串portletId=portletURL.getPortletId();
String action=GetterUtil.getString(portletURL.getParameter(“action”);
if(作用等于(“步骤1”)){
System.out.println(“步骤1”);
}
friendlyURLPath=StringPool.FORWARD_SLASH+getMapping()
+StringPool.FORWARD_斜杠+动作
;
if(Validator.isNotNull(friendlyURLPath)){
//达拉港口酒店
addParameterIncludedInPath(“操作”);
addParameterIncludedInPath(“p_p_id”);
addParameterIncludedInPath(“p_p_生命周期”);
addParameterIncludedInPath(“p_p_状态”);
addParameterIncludedInPath(“p_p_模式”);
addParameterIncludedInPath(“p_p_col_id”);
addParameterIncludedInPath(“p_p_col_count”);
} 
}
//返回原始未格式化url
返回友好路径;
}
public void populateParams(字符串friendlyURLPath,映射参数Map){
System.out.println(friendlyURLPath);
System.out.println(parameterMap.size());
}
有什么提示吗

populateParams()执行与buildPath()相反的操作。当需要将友好URL转换为原始Liferay portlet URL时,将调用它。它应该被触发,例如,当您转到友好URL时。然后Liferay将调用populateParams()来构建一个Liferay URL(你知道,这个长URL有很多参数)


简而言之,buildPath()用于生成外观友好的URL,populateParams()用于构建Liferay样式的portlet URL。通过这种方式,映射是双向的。

下面是对Liferay 5中如何处理友好URL的一个很好的解释。这很清楚。。。在我的portlet中,问题是populateParams没有被触发,所以portletUrl是在友好模式下编写的,并且不会在单击时(由populateParams)重新转换……这确实很奇怪。快速尝试一下:在liferay-portlet.xml中指定友好的映射程序时,删除换行符。它可能根本没有注册(Liferay看到一个空字符串)。如果没有帮助,您可以发布.war文件吗?