liferay中 liferay-ui:input-asset-links 如果type是中文不能正常选择的问题(只能选择第一次选型的类型,如第一次选了文档,后续都只能选文档,不能选其他的类型)。语言改成英文后,类型名称为英文的话就可正常选择。
在liferay-ui:input-asset-links源代码中引用了liferay-ui:icon,其中对中文不支持的问题出现在id="<%= FriendlyURLNormalizerUtil.normalize(type) %>"。
<liferay-ui:iconcssClass="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)。