Y at-il une étiquette comme mot pour mot, sauf que vous pouvez le mettre à sale?
-
16-10-2019 - |
Question
Ce que je voudrais quelque chose comme suit:
<f:verbatim>
<%
out.println("<span id='test'>Data</span>");
%>
</f:verbatim>
Je voudrais le code out.println à exécuter à nouveau par ajax. Cependant, quand je mets ce formulaire à sale, le out.println n'est pas recourue.
Y at-il un moyen de contourner cela, à court d'utiliser une balise personnalisée?
Ce que je dois est une balise, comme
<f:writeAsHTML value="#{bean.HTMLproducer}"/>
Y at-il déjà une étiquette comme ça dans myfaces ou JSF de base?
La solution
Il suffit de mettre en f:verbatim
sans que scriptlet
<f:verbatim>
<span id="test">Data</span>
</f:verbatim>
Ou tout simplement l'imprimer en clair (seulement possible sur JSF 1.2 ou plus récent)
<span id="test">Data</span>
Ou utilisez h:outputText
car il rend une <span>
de toute façon
<h:outputText id="test" value="Data" />
Ou utilisez h:outputText escape="false"
si le HTML provient d'une propriété de haricot
<h:outputText value="#{bean.html}" escape="false" />
Selon votre exigence fonctionnelle qui se lit comme
Je voudrais le code out.println à ajax par recourue
Le problème doit être résolu ailleurs. Utilisez-vous 1.x ou 2.x JSF? Peu importe, vous devez utiliser les composants JSF fournis par les composants Ajax comme RichFaces de Ajax4jsf ou les composants <f:ajax>
JSF 2.0 qui offre un attribut render
pour déclencher re-rendu des composants JSF.