{"id":120,"date":"2016-11-08T12:02:17","date_gmt":"2016-11-08T11:02:17","guid":{"rendered":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=120"},"modified":"2022-12-04T12:02:38","modified_gmt":"2022-12-04T11:02:38","slug":"tipp-01-primefaces-tabellen-sortieren-sich-nicht","status":"publish","type":"post","link":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=120","title":{"rendered":"Tipp 01 Primefaces: Tabellen sortieren sich nicht"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Umgebung<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>EE7<\/li>\n\n\n\n<li>JSF 2.2<\/li>\n\n\n\n<li>Primfaces 6 Snapshot<\/li>\n<\/ul>\n\n\n\n<p>Folgender Fall ist gegeben: In einer xhtml-Seite wird auf eine Liste in einer Sessionbean f\u00fcr eine Tabelle verwiesen.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;p:dataTable value=\"#{sBDummy.myList}\" var=\"item\" &gt;\n\t&lt;p:column sortBy=\"#{item.description}\" &gt;\n\t\t&lt;f:facet name=\"header\" &gt;\n\t\t\t&lt;h:outputText value=\"Beschreibung\" \/&gt;\n\t\t&lt;\/f:facet&gt;\n\t\t&lt;h:outputText value=\"#{item.description }\" \/&gt;\n\t&lt;\/p:column&gt;\n&lt;\/p:dataTable&gt;\n<\/pre>\n\n\n\n<p>Es kommt zu Problemen bei der Sortierung der Spalten, wenn die Liste der Tabelle nicht in der Sessionbean verwaltet, sondern jedes mal aus einer Facade abgefragt wird. Die Anzeige der Tabelle verh\u00e4lt sich in diesem Fall normal, die Sortierung innerhalb des Kopfes der Tabelle funktioniert aber nicht.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">@EJB\nprivat etransient MyDataFacade myDataFacade;\n\n\/** @return Angezeigte Liste *\/\npublic List getMyList () {\n\t\/\/ Die Daten werden aus der Facade z.B. aus der DB geladen\n\treturn this.myDataFacade.findData();;\n}\n<\/pre>\n\n\n\n<p>Es wird also die Liste bei jedem get Aufruf aus der EJB geladen. Dies kann zum einen ein Performanceproblem werden, da die get-Methode bei einem Server-Roundtrip mehrmals aufgerufen wird. Zum anderen funktioniert die Sortiereigenschaft der Tabelle bei Primefaces nicht. Um die Funktionalit\u00e4te zu gew\u00e4hrleisten, muss die Liste in der Sessionbean mit einem Attribut verwaltet werden. Die Initialisierung erfolgt je nach Bedarf<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>postconstuct-Methode<\/li>\n\n\n\n<li>Navigation zu der xhtml-Seite<\/li>\n\n\n\n<li>manuell durch Bet\u00e4tigung eines Buttons<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Umgebung Folgender Fall ist gegeben: In einer xhtml-Seite wird auf eine Liste in einer Sessionbean f\u00fcr eine Tabelle verwiesen. &lt;p:dataTable value=&#8220;#{sBDummy.myList}&#8220; var=&#8220;item&#8220; &gt; &lt;p:column sortBy=&#8220;#{item.description}&#8220; &gt; &lt;f:facet name=&#8220;header&#8220; &gt; &lt;h:outputText value=&#8220;Beschreibung&#8220; \/&gt; &lt;\/f:facet&gt; &lt;h:outputText value=&#8220;#{item.description }&#8220; \/&gt; &lt;\/p:column&gt; &lt;\/p:dataTable&gt; Es kommt zu Problemen bei der Sortierung der Spalten, wenn die Liste der Tabelle nicht in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-120","post","type-post","status-publish","format-standard","hentry","category-jee"],"_links":{"self":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=120"}],"version-history":[{"count":1,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/120\/revisions"}],"predecessor-version":[{"id":121,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/120\/revisions\/121"}],"wp:attachment":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}