WrapDynaBeanをJSFで使用したい
org.apache.commons.beanutils.WrapDynaBeanを継承したラッパーBeanでBeanをラップし、h:dataTableで表示したいです。
以下のコードではWrapperBeanからTestBeanのvalueを参照できないのでjavax.el.PropertyNotFoundExceptionが発生してしまいます。解決策はあるでしょうか?
ラッパーBean
public class WrapperBean extends WrapDynaBean{
// テーブルのNo
private int no;
// setter, getter...
}
ラップされるBean
public class TestBean{
private String value;
// setter, getter...
}
管理Bean
public class TestController{
private List<WrapperBean> wbList;
@PostConstract
private void init(){
// テーブルの内容を保持したTestBeanをラップする。
wbList.add(new WrapperBean(new TestBean("hoge"));
wbList.add(new WrapperBean(new TestBean("huga"));
wbList.add(new WrapperBean(new TestBean("piyo"));
}
}
test.xhtml
<h:dataTable value="#{testController.wbList}" var="row"
<h:column>
<h:outputText value="#{row.no}"/>
</h:column>
<h:column>
<h:outputText value="#{row.value}"/>
</h:column>
</h:dataTable>