Hallo.
Ich mache gerade an einer Anwendung rum und wollte mal fragen ob das so der Königsweg ist. Gleich vorneweg, es funktioniert alles wie gewünscht, nur kommt mir die Art und Weise ein bisschen umständlich vor.
Ich habe eine MySQL Datenbank siehe dem Bild.
Das ganze wird per Hibernate angebunden. Ich nutze JSF 2.2 in Verbindung mit PrimeFaces 3.x, einem Tomcat 7.0.50.
Meine Frage betrifft die EL Language in den entsprechenden xhtml Dateien. Ich frage via Hibernate die Tabelle Request ab. Hier die mapping Datei.
[XML]<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 24.07.2014 09:53:03 by Hibernate Tools 3.6.0 -->
<hibernate-mapping>
<class name="fileService.Request" table="request" catalog="fileService">
<id name="idrequest" type="java.lang.Integer">
<column name="idrequest" />
<generator class="identity" />
</id>
<property name="reqAt" type="timestamp">
<column name="reqAt" length="19" not-null="true" />
</property>
<property name="pending" type="boolean">
<column name="pending" not-null="true" />
</property>
<property name="ack" type="boolean">
<column name="ack" not-null="true" />
</property>
<set name="shareHasUsers" table="share_has_user" inverse="true" lazy="true" fetch="select">
<key>
<column name="request_idrequest" not-null="true" />
</key>
<one-to-many class="fileService.ShareHasUser" />
</set>
</class>
</hibernate-mapping>[/XML]
Über die ManagedBean und Hibernate komme ich dann zu einem Objekt der Klasse DataModel, das Ding ist Teil des PrimeFaces Frameworks.
Hier ein Auszug:
Im JSF File sieht das dann so aus, auch hier nur ein Auszug, die entsprechende Tabelle. Bei mir gehen die Fragezeichen in den Zeilen 15, 21, 27, 33 und 39 an. Soll das so sein. Ich meine es funktioniert ohne Probleme und nachvollziehbar ist es auch. Es wird durch das Mapping ja ein ziemlich geschachteltes Konstrukt aufgebaut und die DataModel ist nichts weiter als ein List Objekt mit ein paar MetaDaten für das PrimeFaces Framework.
Gibts einen anderen Weg oder soll das so sein?
Danke.
[XML]<p:dataTable value='#{requestController.adminRequest}' var="item" first="#{requestController.first}" rows="#{requestController.ROW_COUNT}">
<f:facet name="header">
<hutputText value="anstehende Anforderungen im IT-SPS bestellen und dann bestätigen" />
</f:facet>
<p:column headerText="Zugriffsrecht bestätigen">
<h:form>
<h:selectBooleanCheckbox disabled="true" value="#{item.ack}" />
<h:commandButton value="Anfrage bestätigen" actionListener="#{requestController.checkBoxListener()}" />
</h:form>
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Personalnr" />
</f:facet>
<hutputText value="#{item.shareHasUsers.iterator().next().user.persnr}" />
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Vorname" />
</f:facet>
#{item.shareHasUsers.iterator().next().user.vorname}
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Nachname" />
</f:facet>
#{item.shareHasUsers.iterator().next().user.nachname}
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="angefordertes Zugriffsrecht" />
</f:facet>
#{item.shareHasUsers.iterator().next().berechtigung.accessRight}
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Verzeichnis" />
</f:facet>
#{item.shareHasUsers.iterator().next().share.bezeichnung}
</p:column>
<f:facet name="footer">
<h:form>
<h:commandButton value="prev" action="#{requestController.prevPage()}" disabled="#{requestController.hasNoPrevPage}" />
<h:commandButton value="next" action="#{requestController.nextPage()}" disabled="#{requestController.hasNoNextPage}" />
</h:form>
<hutputText value="#{requestController.first+1}-#{requestController.adminRequest.rowCount} von #{requestController.adminRequest.rowCount}" rendered="#{requestController.hasNoNextPage}" />
<hutputText value="#{requestController.first+1}-#{requestController.first + requestController.ROW_COUNT} von #{requestController.adminRequest.rowCount}" rendered="#{requestController.hasNoNextPage == false}" />
</f:facet>
</p:dataTable>[/XML]
Ich mache gerade an einer Anwendung rum und wollte mal fragen ob das so der Königsweg ist. Gleich vorneweg, es funktioniert alles wie gewünscht, nur kommt mir die Art und Weise ein bisschen umständlich vor.
Ich habe eine MySQL Datenbank siehe dem Bild.
Das ganze wird per Hibernate angebunden. Ich nutze JSF 2.2 in Verbindung mit PrimeFaces 3.x, einem Tomcat 7.0.50.
Meine Frage betrifft die EL Language in den entsprechenden xhtml Dateien. Ich frage via Hibernate die Tabelle Request ab. Hier die mapping Datei.
[XML]<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 24.07.2014 09:53:03 by Hibernate Tools 3.6.0 -->
<hibernate-mapping>
<class name="fileService.Request" table="request" catalog="fileService">
<id name="idrequest" type="java.lang.Integer">
<column name="idrequest" />
<generator class="identity" />
</id>
<property name="reqAt" type="timestamp">
<column name="reqAt" length="19" not-null="true" />
</property>
<property name="pending" type="boolean">
<column name="pending" not-null="true" />
</property>
<property name="ack" type="boolean">
<column name="ack" not-null="true" />
</property>
<set name="shareHasUsers" table="share_has_user" inverse="true" lazy="true" fetch="select">
<key>
<column name="request_idrequest" not-null="true" />
</key>
<one-to-many class="fileService.ShareHasUser" />
</set>
</class>
</hibernate-mapping>[/XML]
Über die ManagedBean und Hibernate komme ich dann zu einem Objekt der Klasse DataModel, das Ding ist Teil des PrimeFaces Frameworks.
Hier ein Auszug:
Code:
...
public DataModel getAdminRequest () {
logger.entry();
if (adminRequest == null) {
adminRequest = new ListDataModel (helper.getAdminRequest());
}
return adminRequest;
}
...
Im JSF File sieht das dann so aus, auch hier nur ein Auszug, die entsprechende Tabelle. Bei mir gehen die Fragezeichen in den Zeilen 15, 21, 27, 33 und 39 an. Soll das so sein. Ich meine es funktioniert ohne Probleme und nachvollziehbar ist es auch. Es wird durch das Mapping ja ein ziemlich geschachteltes Konstrukt aufgebaut und die DataModel ist nichts weiter als ein List Objekt mit ein paar MetaDaten für das PrimeFaces Framework.
Gibts einen anderen Weg oder soll das so sein?
Danke.
[XML]<p:dataTable value='#{requestController.adminRequest}' var="item" first="#{requestController.first}" rows="#{requestController.ROW_COUNT}">
<f:facet name="header">
<hutputText value="anstehende Anforderungen im IT-SPS bestellen und dann bestätigen" />
</f:facet>
<p:column headerText="Zugriffsrecht bestätigen">
<h:form>
<h:selectBooleanCheckbox disabled="true" value="#{item.ack}" />
<h:commandButton value="Anfrage bestätigen" actionListener="#{requestController.checkBoxListener()}" />
</h:form>
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Personalnr" />
</f:facet>
<hutputText value="#{item.shareHasUsers.iterator().next().user.persnr}" />
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Vorname" />
</f:facet>
#{item.shareHasUsers.iterator().next().user.vorname}
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Nachname" />
</f:facet>
#{item.shareHasUsers.iterator().next().user.nachname}
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="angefordertes Zugriffsrecht" />
</f:facet>
#{item.shareHasUsers.iterator().next().berechtigung.accessRight}
</p:column>
<p:column>
<f:facet name="header">
<hutputText value="Verzeichnis" />
</f:facet>
#{item.shareHasUsers.iterator().next().share.bezeichnung}
</p:column>
<f:facet name="footer">
<h:form>
<h:commandButton value="prev" action="#{requestController.prevPage()}" disabled="#{requestController.hasNoPrevPage}" />
<h:commandButton value="next" action="#{requestController.nextPage()}" disabled="#{requestController.hasNoNextPage}" />
</h:form>
<hutputText value="#{requestController.first+1}-#{requestController.adminRequest.rowCount} von #{requestController.adminRequest.rowCount}" rendered="#{requestController.hasNoNextPage}" />
<hutputText value="#{requestController.first+1}-#{requestController.first + requestController.ROW_COUNT} von #{requestController.adminRequest.rowCount}" rendered="#{requestController.hasNoNextPage == false}" />
</f:facet>
</p:dataTable>[/XML]