liferay中 liferay-ui:input-asset-links不能正常选择类型的问题

来源:互联网 发布:ajax json哪个好 编辑:程序博客网 时间:2024/06/06 04:07

liferay中 liferay-ui:input-asset-links 如果type是中文不能正常选择的问题(只能选择第一次选型的类型,如第一次选了文档,后续都只能选文档,不能选其他的类型)。语言改成英文后,类型名称为英文的话就可正常选择。



liferay-ui:input-asset-links源代码中引用了liferay-ui:icon,其中对中文不支持的问题出现在id="<%= FriendlyURLNormalizerUtil.normalize(type) %>"。

<liferay-ui:icon
cssClass="asset-selector"
data="<%= data %>"
id="<%= FriendlyURLNormalizerUtil.normalize(type) %>"
message="<%= assetRendererFactory.getTypeName(locale, false) %>"
src="<%= assetRendererFactory.getIconPath(portletRequest) %>"
url="javascript:;"

/>

如果type为中文的话,此时通过FriendlyURLNormalizerUtil.normalize(type)进行正规化后,中文的值为都为“-”,最后导致id值都相同,JavaScript脚本不能正常选择类型。

一种粗暴的解决方法:删除FriendlyURLNormalizerUtil.normalize()方法,对id值进行重新赋值后,liferay-ui:input-asset-links就可正常选择。此方法简单粗暴尚不清楚对其他有什么影响(主要是对FriendlyURL)。