JavaServer obsługuje 2.2 i HTML5, dlaczego XHTML jest nadal używany
Po przeczytaniu o obsłudze HTML5 w JSF 2.2 , byłem zaskoczony, że znalazłem ten sam doctype XHTML jak w poprzednich wersjach Facelets w pliku szablonu utworzonym z nowej aplikacji webowej w Netbeans. Jedyną różnicą jest to, że znacznik HTML czyta się w JSF 2.2:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
, a nie jak w starszych wersjach JSF:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
Wydaje się trochę błędne, aby nadal używać XHTML z obietnicą HTML5 w umyśle. Mam tylko możliwość korzystania z 2.2 jeśli wybieram go z "zarejestrowany biblioteki "zamiast" biblioteki serwerowej". Czy ma to wpływ na sposób zastosowania wersji framework do projektu?
Czy XHTML jest zbytnio zależny od obsługi HTML5?
1 answers
Wygląda na to, że źle zrozumiałeś cel XHTML jak wielu ludzi podczas XHTML overhype kilka lat temu. W skrócie: sprawdź naszą stronę wiki XHTML. Przeczytaj uważnie. W skrócie, Facelets absolutnie nie dba o doctype używany w wygenerowanym wyjściu HTML. Możesz doskonale zadeklarować HTML5 doctype w szablonie Facelets.
To rzeczywiście niefortunne, że Netbeans domyślnie przygotowuje dokument za pomocą XHTML doctype podczas gdy HTML5 jest obecnie zalecanym doctype. Nie robię Netbeans, ale w Eclipse można łatwo edytować te szablony, a nawet tworzyć własne. Możesz po prostu zastąpić cały doctype XHTML przez HTML5. Możesz znaleźć/utworzyć te szablony za pomocą Web "pliki HTML" edytor " Szablony W IDE prefs.
Należy pamiętać, że obsługa HTML5 w JSF 2.2 nie ma nic wspólnego z obsługą HTML5 doctype. Wręcz przeciwnie, jest to obsługiwane we wszystkich wersjach JSF, nawet wtedy, gdy używany jest starszy JSP. JSP i Facelets to technologie widoku, które pozwalają generować wyjście HTML, które może doskonale być HTML5 jako dobre. Jest to również omówione w następującej ściśle powiązanej odpowiedzi: czy możliwe jest użycie JSF+Facelets z HTML 4/5?
Zamiast tego, obsługa HTML5 w JSF 2.2 obejmuje możliwość definiowania niestandardowych atrybutów komponentu JSF i przekształcania niestandardowych elementów HTML w komponenty JSF. Nie było to możliwe w JSF 2.1 i wcześniej. Wszelkie niestandardowe atrybuty komponentu JSF (w tym atrybuty data-xxx
zalecane przez HTML5) były po prostu ignorowane przez domyślne renderery JSF. Zobacz także następującą powiązaną odpowiedź: niestandardowe atrybuty znaczników HTML nie są renderowane przez JSF . W JSF 2.2 można łatwo określić własne atrybuty przez nową przestrzeń nazw http://xmlns.jcp.org/jsf/passthrough
w następujący sposób:
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:inputText ... a:autocorrect="off" />
Zakończy się to atrybutem by <h:inputText>
nieobsługiwanym autocorrect
, aby faktycznie zostać dołączonym do wygenerowanego wyjścia HTML. Zauważ, że używam XML zamiast p
, Jak pokazano w w samouczku Java EE , w przeciwnym razie kolidowałby on z domyślnym prefiksem XML przestrzeni nazwp
przestrzeni PrimeFaces.
Przekształcenie niestandardowych elementów HTML (w tym elementów HTML5) w komponenty JSF jest kwestią określenia atrybutu jsf
, takiego jak jsf:id
.
<html ... xmlns:jsf="http://xmlns.jcp.org/jsf">
...
<header jsf:id="header">...</header>
<main jsf:id="main">...</main>
<footer jsf:id="footer">...</footer>
Te pod pokrywami zostaną zamienione w UIPanel
(Jak <h:panelGroup>
). I tak, można je znaleźć w np. <f:ajax render>
.
Innymi słowy, "Obsługa HTML5" to po prostu kolejny buzzword dla "Custom attribute support".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:32:33