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

时间:2017-01-11 18:08:03

标签: jsf xpages el

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

这是页面上的XML标记。建立得很好。

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

在运行时我收到此消息

  

javax.faces.FacesException:java.lang.ClassCastException:   java.lang.Long与java.lang.String不兼容           javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:865)           com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)

是否有表达式方法将此基元类型转换为String?

2 个答案:

答案 0 :(得分:3)

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

value="0#{rowData.drmKey}"

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

答案 1 :(得分:1)

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

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