如何在表达式语言中将 int 转换为字符串?

How to convert int to string in Expression Language?

我在 XPages(JSF 视图控制器)中工作。在我的 DataTable 中,我想创建一个 html 属性 data-dmrkey="##"

这是页面上的 XML 标记。构建良好。

<xp:attr name="data-dmrkey" value="#{rowData.dmrkey}"></xp:attr>

在运行时我收到这条消息

javax.faces.FacesException: java.lang.ClassCastException: java.lang.Long incompatible with java.lang.String javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:865) com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)

是否有表达式语言方法可以将此基本类型转换为字符串?

不确定是否在 EL 中转换为字符串,但如果将表达式更改为 JavaScript,该属性可以正常工作:

<xp:attr name="someAttr" value="#{javascript:rowData.getColumnValue('someIntField')}"/>

我知道这个问题已经出现一段时间了,但这会起作用:

value="0#{rowData.drmKey}"

这利用了 java 在连接时自动将数字转换为字符串的方式。在计算该值时,它 returns "0"+rowData.drmKey,将其转换为带有前导零的字符串 - 然后可以将其解析回 Long(或 Integer 等)