Le problème de l’id
Lorsque l’on crée un formulaire JSF (<h:form>), le moteur de rendu crée bien sûr une balise HTMLHTML (HyperText Markup Language) est un langage permettant de décrire le découpage d'une page web. , mais il ajoute également plusieurs de type hidden. Entre autre, le javax.faces.ViewState qui permet de récupérer l’état de vos composants d’une requête HTTP à l’autre. Le problème vient du fait que Mojarra, l’implémentation de référence, a la fâcheuse manie d’ajouter un id sur cet input avec la valeur statique « javax.faces.ViewState ».
La difficulté apparaît lorsque l’on a plusieurs formulaires sur une même page JSF : on se retrouve alors avec deux input de type hidden avec le même id sur la page HTML finale. En conséquence, cet attribut qui n’est d’aucune utilité provoque une erreur lorsque l’on passe son code au validateur W3C, chose que l’on peut être amené à faire dans une démarche d’accessibilité et/ou de référencement.
La solution : context param
Heureusement une solution existe : comme toujours, JSF propose une correction de bug sous la forme d’un paramétrage. Vous avez donc un spécifique pour cette situation, à insérer simplement dans votre fichier web.xml :
{{< highlight java >}} < context-param>
La valeur « true » ajoute l’id, « false » le supprime.
Si vous faites du web depuis quelque temps, vous avez sûrement déjà utilisé des Websockets, et si c'est le cas, vous détestez sûrement ce protocole et son implémentation. Personnellement, je ne le trouve pas fiable, lourd à implémenter et pas du tout performant. C'est cette haine du Websocket qui m'a fait chercher de nouvelles solutions pour faire de la communication bilatérale entre un client et un serveur, et j'ai trouvé mon bonheur : le MQTT.
Un besoin récurrent en Java 8 est la mise à jour des données à l’intérieur du cache : on veut alors modifier une valeur pour une clé existant dans la Map. C’est à ça que sert la méthode computeIfPresent.
Dans le monde de Microsoft, les choses bougent ! La plateforme .NET comporte maintenant deux déclinaisons : .NET Framework et .NET Core. Mais alors, quel framework .NET utiliser pour mon projet ? Un versus s'impose ! Au programme : définitions, spécificit