tutorial - Componente para inyectar e interpretar Cadena con código HTML en la página JSF
validaciones jsf (1)
Estoy usando PrimeFaces con JSF 2.0 para construir una aplicación. Estoy usando el componente PrimeFaces <p:editor>
para permitir al usuario crear texto enriquecido. Pero el resultado de este componente es una fuente HTML que se ve así:
String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>";
Cuando muestro esto en a <h:outputText>
como a continuación:
<h:outputText value="#{bean.text}" />
Luego muestra el código HTML como texto sin formato:
<p> Este texto <i> contiene </ i> algún código <b> HTML </ b>. </ p>
¿Hay algún componente que pueda interpretar la fuente HTML de manera que, por ejemplo, <i>
se muestre realmente como cursiva y <b>
como negrita?
Este texto contiene algunos códigos HTML .
JSF escapa por defecto de HTML de las propiedades del bean de respaldo para evitar agujeros de ataque XSS. Para desactivar esto, simplemente configure el atributo de escape
de <h:outputText>
en false
.
<h:outputText ... escape="false" />
De esta forma, el HTML no se escapará y, por lo tanto, será interpretado por el navegador web.
Sin relación con el problema concreto, ten cuidado con los ataques XSS ya que estás aquí básicamente redisponiendo la entrada controlada por el usuario sin guardar. Es posible que desee desinfectarlo de antemano.