2017-01-11 14 views
0

私はXPage(JSF View Controller)で作業しています。私のDataTableでは、html属性を作成したいですdata-dmrkey="##"intを式言語で文字列に変換するには?

ここには、このページの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)

式LANGUがありますこのプリミティブ型を文字列に変換する年齢の方法は?

+0

現在の回避策は、メソッドgetDisplayDmrkey()およびラッパークラスのrowData.displayDmrkeyへのバインディング – xpagesbeast

答えて

1

ELの文字列に変換について確認していますが、JavaScriptに表現を変更した場合、属性がOKに動作しない場合:

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

オブジェクトrowDataはJavaオブジェクトモデルラッパーで、データはAS400からのものです。私がやっていることは、getDisplayDmrkey()のようなメソッドをラッパークラスで作成し、文字列値を返すことです。 – xpagesbeast

+0

マイワ、この質問に貢献できますか?http://stackoverflow.com/questions/41877024/devops-with-xpages-on-premesis-or-paas-like-bluemix – xpagesbeast

2

私はこの質問はここに出てしばらくしている知っているが、これは動作します:

value="0#{rowData.drmKey}" 

これは、連結する際にjavaが自動的に数値を文字列に変換する方法を利用しています。この値を計算すると、 "0" + rowData.drmKeyが返され、先行ゼロの文字列に変換されます。これを解析してLong(またはIntegerなど)に戻すことができます。

関連する問題