JavaDabbaDoo.org -Tu comunidad Java parlante Implementar MVC - VW JSF
Inicio | Cursos infosintesis.net liberados | Java EE | Registrar a un usuario en un sitio Web con Visual Web JSF
Registrar a un usuario en un sitio Web con Visual Web JSF
Paso 10: Operativa

Vista - RegistroUsuario.jsp - Agregar componente de tipo CheckboxGroup al lienzo

En este paso vamos a agregar al lienzo un componente de tipo CheckboxGroup.

aaaa

Para cumplir nuestro objetivo, vamos a seguir los siguientes pasos.

1. Agregar la etiqueta lblGeneroCine

Para situar una etiqueta en el lienzo, vamos a arrastrar el icono Label en dicho lienzo tal y como hicimos en Vista - RegistroUsuario.jsp - Agregar componente Label al lienzo

En la propiedad id de la ventana Properties del componente Label, escribimos lblGeneroCine.

En el fichero paqregusuariovwjsf/Bundle.properties añadimos las llaves

literal.registroUsurario=Registro de usuario
literal.camposRequeridos=Campos requeridos

literal_nombre=Nombre
literal_apellido=Apellido
literal_email=E-Mail
literal_codigoPostal=Código Postal
literal_login=Login (mínimo 6 caracteres)
literal_password=Contraseña (mínimo 8 caracteres)
literal_confirmarPassword=Confirmar contraseña

literal_consulta_generoCine=¿Qué géneros de cine te gustan más?
literal_comedia=Comedia
literal_musical=Musical
literal_aventura=Aventura
literal_policiaco=Policiaco
literal_clasico=Clásico
literal_melodrama=Melodrama

literal_enviar=Enviar

En la propiedad Text de la ventana Properties del componente Label, escribimos el valor de expresión (value expresssion) #{mensajes.literal_consulta_generoCine}

2. Agregar un componente de tipo CheckboxGroup al lienzo

Para situar un componente de tipo CheckboxGroup en el lienzo, vamos a arrastrar el icono Checkbox Group en dicho lienzo

aaaa

En la propiedad id de la ventana Properties del componenteCheckbox Group, escribimos generoCine.

En la propiedad columns de la ventana Properties del componente Checkbox Group, escribimos 3.

aaaa

Esta es la página JSP RegistroUsuario.jsp ampliada

<?xml version="1.0" encoding="UTF-8"?>

<jsp:root
 ..
>
 <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
 <f:view>
  ..
     <webuijsf:form id="form1">
      ..
 
    <webuijsf:label id="lblGeneroCine"
                     style="left: 28px; top: 330px; position: absolute"                      text="#{mensajes.literal_consulta_generoCine}"
      />
      
<webuijsf:checkboxGroup columns="3" id="generoCine"
                     
items="#{RegistroUsuario.generoCineDefaultOptions.options}"
                     style="position: absolute; left: 24px; top: 350px"

      />
     </webuijsf:form>
    </webuijsf:body>
   </webuijsf:html>
  </webuijsf:page>
 </f:view>
</jsp:root>

y este es el código del backing bean RegistroUsuario que también ha sido ampliado

.
.

public class RegistroUsuario extends AbstractPageBean {
.
.

 private void _init() throws Exception {
  lengthValidator1.setMinimum(6);
  lengthValidator2.setMinimum(8);
 }


 private
MultipleSelectOptionsList generoCineDefaultOptions =
                                                    
new MultipleSelectOptionsList();

 public MultipleSelectOptionsList getGeneroCineDefaultOptions() {
  return generoCineDefaultOptions;
 }

 public void setGeneroCineDefaultOptions(MultipleSelectOptionsList msol) {
  this.generoCineDefaultOptions = msol;
 }
.
.

}

Ahora vamos a crear tres nuevos elementos y también les vamos a dar sus valores correspondientes. Para hacemos clic con el botón derecho sobre el Checkbox Group del lienzo y en el menú emergente seleccionamos Configure Default Options...

aaaa

En el cuadro de diálogo Options Customizer añadimos los tres nuevos elementos y le damos los siguientes valores

Para salir de este cuadro de diálogo hacemos clic sobre el botón OK

aaaa

Este es el código ampliado de la Clase RegistroUsuario

.
.

public class RegistroUsuario extends AbstractPageBean {
.
.

 private void _init() throws Exception {
  lengthValidator1.setMinimum(6);
  lengthValidator2.setMinimum(8);
  
generoCineDefaultOptions.setOptions(new com.sun.webui.jsf.model.Option[]{
                        new com.sun.webui.jsf.model.Option("comedia", "Elemento 1"),
                        new com.sun.webui.jsf.model.Option("musical", "Elemento 2"),
                        new com.sun.webui.jsf.model.Option("aventura", "Elemento 3"),
                        new com.sun.webui.jsf.model.Option("policiaco", "Elemento 4"),
                        new com.sun.webui.jsf.model.Option("clasico", "Elemento 5"),
                        new com.sun.webui.jsf.model.Option("melodrama", "Elemento 6")});
  generoCineDefaultOptions.setSelectedValue(null);

 }

 private MultipleSelectOptionsList generoCineDefaultOptions =
                                                    new MultipleSelectOptionsList();

 public MultipleSelectOptionsList getGeneroCineDefaultOptions() {
  return generoCineDefaultOptions;
 }

 public void setGeneroCineDefaultOptions(MultipleSelectOptionsList msol) {
  this.generoCineDefaultOptions = msol;
 }

.
.

}

3. Obtener los textos de cada una de las casillas de verificación de un Resource Bundle desde un backing bean

Para realizar la internacionalización de cada una de las casillas de verificación del CheckBox Group, tenemos que obtener los textos del fichero paqregusuariovwjsf.Bundle.properties desde el método _init() del backing bean RegistroUsuario, de forma parecida a como lo hicimos en el Paso 6 - Crear un validador personalizado.

En esta ocasión la instancia del la Clase FacesContext la obtendremos a partir del método estático FacesContext.getCurrentInstance().


Compara tu código con la solución propuesta

Página anterior
Ignasi Pérez Valls
fundador-director Infosintesis Solutions Group
asesor-formador independiente
ignasiperez[ARROBA]javadabbadoo[PUNTO]org
Junio 2009
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...