martes, 30 de octubre de 2018

Importar clase de constantes Java en xhtml con Primefaces

Para utilizar las propiedades de una clase de constantes en un formulario .xhtml con Primefaces se procede de la siguiente manera:

Fichero .xhtml:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui">

<p:importConstants type="es.iecisa.portaflow.util.Constants" var="Constants" />

<f:view contentType="text/html" locale="#{request.locale}" encoding="ISO-8859-1">
<h:panelGroup layout="block" style="width:95%;margin:0 auto">
<p:fieldset legend="#{message['query.processes.title']}">
<h:form id="frmQuery">


<!-- EL CÓDIGO CONTINÚA... -->


<!-- SI LA PROPIEDAD ES EL DOCUMENTO, LO MOSTRAMOS COMO ENLACE DE DESCARGA -->
<c:if test = "#{processesBean.abstractMessageBean.label(name) eq Constants.MENSAJE_PROPIEDAD_DOCUMENTO}">
<p:commandLink id="buttonDownload" ajax="false">
<h:outputText value="#{processesBean.abstractMessageBean.property(name)}" />
<p:fileDownload value="#{processesBean.descargarDocumento}" />
</p:commandLink>
</c:if>
<c:if test = "#{processesBean.abstractMessageBean.label(name) ne Constants.MENSAJE_PROPIEDAD_DOCUMENTO}">
<p:outputLabel value="#{processesBean.abstractMessageBean.property(name)}"/>
</c:if>


Y la clase de constantes de Java:

package es.iecisa.portaflow.util;

// Declaramos la clase como final para que no tenga otras clases que la hereden
public final class Constants {

// Definimos el constructor como privado para que la clase no pueda ser instanciada
private Constants() {}

// Declaramos las constantes como static para que sean variables de clase y no de instancia, es decir,
// que no se crea una variable por cada instancia, sino que se crea una única variable que
// comparten todas las instancias.
// Declaramos las constantes como final para que no se pueda modificar su valor.

public static final String MENSAJE_PROPIEDAD_DOCUMENTO = "Documento";

}

No hay comentarios:

Publicar un comentario