我在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?
答案 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')}"/>