私は現在、JSFでScalaを使用していますが、この2つは非常にうまく連携しています。ただし、JSFは、リストなどのデータ構造を(Class.newInstanceを介して)再インスタンス化する必要がある場合があります。たとえば、マネージドBeanでは、次のようになります。
@BeanProperty
var countries: java.util.List[String] = List("US").asJava
これは、java.lang.InstantiationExceptionが発生するJSFのプロセス検証フェーズに到達するまで正常に機能します。
java.lang.InstantiationException: scala.collection.JavaConversions$SeqWrapper
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at com.sun.faces.renderkit.html_basic.MenuRenderer.createCollection(MenuRenderer.java:906)
at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectManyValuesForModel(MenuRenderer.java:366)
at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectManyValue(MenuRenderer.java:128)
at com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:314)
at org.primefaces.component.selectcheckboxmenu.SelectCheckboxMenuRenderer.getConvertedValue(SelectCheckboxMenuRenderer.java:34)
...
基本的なレベルから、ラッパーが最初から再インスタンス化されない可能性があることは理にかなっているため、JavaConvertersの使用はここではうまく機能しません。私の質問は、ラッパーなしで完全なデータ構造マッピング/変換をすでに提供しているライブラリがありますか?そうでなければ、私は自分の内部のものを書くだけです。