Lineamientos Capa de Presentación

A continuación se nombraran algunas buenas prácticas que deben estar presentes en los proyectos a nivel de capa de presentación.

  • Un proyecto a nivel de capa de presentación debería tener la siguiente estructura básica de directorios:
  • view
    • common: elementos comunes a todas las paginas
      • img: imagenes
      • layout: templates
      • mainPages: paginas principales
      • stylesheet: hojas de estilo
    • modulo1: paginas del modulo 1
      • casouso1: paginas del caso de uso 1
      • casouso2: paginas del caso de uso 2
    • modulo2: paginas del modulo 2
  • La ubicación de las páginas debe ser sobre el subdirectorio nombrado con el caso de uso
  • Sobre el subdirectorio nombrado con el caso de uso debe haber dos clases de archivos:
    • Pagina xhtml: La página debe tener extensión xhtml con el nombre de la acción principal que esta soporta Ejemplo: adicionarParamCuenta.xhtml. Si se trata de una página donde se muestra un listado de registros (tabla de registros), esta debe contener el sufijo List Ejemplo: parametrizarCuentasList.xhtml
    • Archivo page: Archivo XML que contiene las reglas de navegación para una página en especifico. Debe tener el mismo nombre de la página. Ejemplo: adicionarParamCuenta.page.xml.
  • Para los demás archivos que se encuentran en la capa de presentación existe su respectiva ubicación dentro del subdirectorio common
  • No ubicar paginas en el directorio raíz (directorio view)
  • Los nombres de los archivos xhtml y archivos page deben empezar con letra minúscula (Ejemplo: adicionarParamCuenta.xhtml, adicionarParamCuenta.page.xml).
  • El nombre en el atributo id de los formularios (<h: form>, <a4j: form>) debe contener el sufijo form.
  • El nombre en el atributo id del contenedor panel (<rich:panel>) debe tener el sufijo panel. Utilizar el (<rich:panel>) para agrupar campos dentro de un formulario
  • Los campos de un formulario deben estar dentro del contenedor <s: decorate> para utilizar el template common/layout/edit.xhtml que proporciona el framewok Seam. Este template proporciona mejor simetría y organización de un formulario.
  • El atributo id de los componentes deben tener el nombre del atributo de clase que soporta. Colocar el atributo id primero que cualquier otro.
  • Cuando un control tiene mas de 3 atributos, colocar los atributos en una linea nueva.
  • Para cargar las listas desplegables (<h:selectOneMenu>) utilizar (<s:selectItems>) de Seam en lugar de (<f:selectItems>) de JSF. El primero puede cargar una lista desplegable de objetos o una lista de tipo Enum.
  • Utilizar el convertidor de fechas (<s:.convertDateTime>) de Seam en lugar del convertidor (<f:convertDateTime>) de JSF en campos de fecha.
  • Utilizar el atributo “title” en todos los campos del formulario (Caja de texto, calendario, lista desplegable, caja de selección, etc)., para mostrar información de ayuda sobre el campo. No utilizar el componente (<rich:tooltip>) para dicho objetivo. El mensaje que va en este atributo debe estar internacionalizado
  • Utilizar el atributo validatorMessage en los campos del formulario para personalizar los mensajes de validación de campos o el atributo converterMessage en caso de que la validación es de conversión. Los mensajes de estos atributos deben estar internacionalizados. Sino se colocan estos atributos en los campos, se toma por defecto los mensajes de JSF
  • No se debe colocar el nombre de los label, mensajes de ayuda, mensajes de validación, mensajes de confirmación, títulos, quemados en la página. Los mensajes deben estar internacionalizados y se debe utilizar la siguiente nomenclatura para construir las llaves de los mensajes.
Tipo de mensaje Formato de mensaje especifico Formato de mensaje común
Mensajes de ayuda nombre_entidad.nombre_modulo.nombre_casouso.nombre_componente.help.nombre_campo common.help.nombre_campo
Labels nombre_entidad.nombre_modulo.nombre_casouso.nombre_componente.label.nombre_campo common.label.nombre_campo
Mensajes confirmación nombre_entidad.nombre_modulo.nombre_casouso.nombre_componente.confirm.descripción_corta common.confirm.descripción_corta
Titulos nombre_entidad.nombre_modulo.nombre_casouso.nombre_componente.title.descripcion_corta common.titulo.descripción_corta
Mensajes de Validación nombre_entidad.nombre_modulo.nombre_casouso.nombre_componente.validation.nombre_campo common.validation.nombre_campo

Todos los mensajes van en el archivo de propiedades messages_ * que se encuentra en el directorio resources del proyecto.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License