{"id":192,"date":"2023-02-03T11:04:05","date_gmt":"2023-02-03T10:04:05","guid":{"rendered":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=192"},"modified":"2023-02-03T13:33:00","modified_gmt":"2023-02-03T12:33:00","slug":"jakarta-10-jf-clientwindowscoped-das-ist-was-gutes","status":"publish","type":"post","link":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=192","title":{"rendered":"Jakarta 10 &#8211; JF @ClientWindowScoped &#8211; das ist was Gutes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Die Tabs im Browser sind immer eine nervige Sache. Bisher war es immer etwas schwierig das Verhalten der Anwendung sauber darzustellen &#8211; viele L\u00f6sungen, die viele IDs speicherten und teilweise die Session duplizieren sind entstanden. Mit dem neuen Scope<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@ClientWindowScoped<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">wird vieles besser. Nach der folgenden Konfiguration in der web.xml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;!-- Client Window -->\n    &lt;context-param>\n        &lt;param-name>jakarta.faces.CLIENT_WINDOW_MODE&lt;\/param-name>\n        &lt;param-value>url&lt;\/param-value>\n    &lt;\/context-param>        \n    &lt;context-param>\n        &lt;param-name>jakarta.faces.NUMBER_OF_CLIENT_WINDOWS&lt;\/param-name>\n        &lt;param-value>30&lt;\/param-value>\n    &lt;\/context-param><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ist alles vorbereitet. Der erste Eintrag startet die Erzeugung einer ID je Tab &#8211; der zweite gibt die Anzahl der ClientWindowScoped Beans an, die existieren k\u00f6nnen (default ist 10).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ab jetzt wird eine Bean je Tab erzeugt, der auf die Bean zugreift. So k\u00f6nnen in einer Session verschiedene Tabs mit  der gleichen Funktion, aber unterschiedlichen Daten behandelt werden. Selbstverst\u00e4ndlich sollte die Logik der Software die gleichzeitige Bearbeitung verhindern oder \u00fcber Optimistic Locking oder Plausi-Pr\u00fcfungen das gew\u00fcnschte Verhalten sicherstellen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Tabs im Browser sind immer eine nervige Sache. Bisher war es immer etwas schwierig das Verhalten der Anwendung sauber darzustellen &#8211; viele L\u00f6sungen, die viele IDs speicherten und teilweise die Session duplizieren sind entstanden. Mit dem neuen Scope wird vieles besser. Nach der folgenden Konfiguration in der web.xml ist alles vorbereitet. Der erste Eintrag [&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-192","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\/192","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=192"}],"version-history":[{"count":3,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/192\/revisions"}],"predecessor-version":[{"id":195,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/192\/revisions\/195"}],"wp:attachment":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}