Я искал способ параметризации класса Managed Bean и до сих пор ничего.Параметрирование экземпляра управляемого компонента в качестве составного атрибута компонента
Что я делаю?
У меня есть компонент JSF, который имеет доступ к некоторым методам из моего компонента, но эти методы уже реализованы абстрактным классом.
Название методов и атрибутов не изменяется, но теперь я копирую и вставляю, изменяя только имя Bean.
Первая реализация - это работа, но я бы хотел улучшить ее со второго.
1- компонент (сейчас):
...
<cc:interface>
<cc:attribute name="title" type="java.lang.String" required="true"/>
<cc:attribute name="data" type="java.util.List" required="true"/>
<cc:attribute name="columnModel" type="java.util.List" required="true"/>
<cc:attribute name="newEntity" type="java.lang.Object" required="true"/>
<cc:attribute name="crudState" type="java.lang.Integer" required="true"/>
</cc:interface>
...
<cc:implementation>
<p:dataTable var="entity" value="#{cc.attrs.data}" >
<p:columns value="#{cc.attrs.columnModel}"
var="column" style="#{column.style}"
styleClass="#{column.styleClass}">
...
</p:columns>
</p:dataTable>
</cc:implementation>
...
1- Реализации (Сейчас):
...
<comp:crud
title="#{cfgUserBean.title}"
data="#{cfgUserBean.data}"
columnModel="#{cfgUserBean.coluuns}"
newEntity="#{cfgUserBean.newEntity}"
newEntity="#{cfgUserBean.crudState}"/>
...
<comp:crud
title="#{cfgCityBean.title}"
data="#{cfgCityBean.data}"
columnModel="#{cfgCityBean.columns}"
newEntity="#{cfgCityBean.newEntity}"
crudState="#{cfgCityBean.curdState}"/>
Желаемая:
Пропустите Bean Имя как Параметр
2- Компонент (Желаемый):
...
<cc:interface>
<cc:attribute name="BEANNAME" type="java.lang.Object" required="true"/>
</cc:interface>
...
<cc:implementation>
<p:dataTable var="entity" value="#{cc.attrs.BEANNAME.data}" >
<p:columns value="#{cc.attrs.BEANNAME.columnModel}"
var="column" style="#{column.style}"
styleClass="#{column.styleClass}">
...
</p:columns>
</p:dataTable>
</cc:implementation>
2- Реализация (Желаемый):
...
<comp:crud BEANNAME="cfgUserBean" />
...
<comp:crud BEANNAME="cfgCityBean" />
Заключение
Как вы можете видеть, если я мог бы параметризуйте имя Bean, я смог бы упростить окончательное кодирование.
Любой, у кого есть идеи, что я могу сделать? Заранее спасибо