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

Vista - registroForm.jsp - Añadir casillas de verificación al formulario

Ahora vamos a ampliar el formulario

Navegador - Formulario Registro usuuario Struts 1.2 - ¿Qué géneros de cine te gustan más? | Comedia | Musical

Ahora ampliamos el código de la página JSP registroForm.jsp teniendo en cuenta que estamos utilizando Hojas de estilo en Cascada (CSS) y recursos multilenguaje.

Nota: Para recordar el funcionamiento de la sentencia switch podemos hacer clic sobre el siguiente vínculo Fundamentos - Sentencia de ramificación múltiple switch

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Formulario Registro usuario Struts 1.2</title>
 <link rel="stylesheet" href="/proregusuariostruts/css2/estilos.css" type="text/css">
</head>
<body>
 <html:form action="registro">
  <html:hidden property="submitRealizado" value="true" />
  <div style="left: 210px; top: 10px; font-size: 24px;
       font-weight: bold; position: absolute">
   <bean:message key="literal.registroUsurario" />
  </div>
  <div style="left: 250px; top: 40px; font-size: 10px; position: absolute">
   *<bean:message key="literal.camposRequeridos" />
  </div>

  <div style="left: 28px; top: 80px; position: absolute">
   <bean:message key="literal.nombre" />*
  </div>
  <div style="left: 28px; top: 100px; position: absolute">
   <html:text property="nombre" size="40" />
  </div>
  <div style="left: 28px; top: 123px; position: absolute">
   <html:errors property="nombre" />
  </div>

  <div style="left: 320px; top: 80px; position: absolute">
   <bean:message key="literal.apellido" />*
  </div>
  <div style="left: 320px; top: 100px; position: absolute">
   <html:text property="apellido" size="40" />
  </div>
  <div style="left: 320px; top: 123px; position: absolute">
   <html:errors property="apellido" />
  </div>


  <div style="left: 28px; top: 140px; position: absolute">
   <bean:message key="literal.email" />*
  </div>
  <div style="left: 28px; top: 160px; position: absolute">
   <html:text property="email" size="40" />
  </div>
  <div style="left: 28px; top: 183px; position: absolute">
   <html:errors property="email" />
  </div>

  <div style="left: 320px; top: 140px; position: absolute">
   <bean:message key="literal.codigoPostal" />*
  </div>
  <div style="left: 320px; top: 160px; position: absolute">
   <html:text property="codigoPostal" size="5" />
  </div>
  <div style="left: 320px; top: 183px; position: absolute">
   <html:errors property="codigoPostal" />
  </div>


  <div style="left: 28px; top: 200px; position: absolute">
   <bean:message key="literal.login" />*
  </div>
  <div style="left: 28px; top: 220px; position: absolute">
   <html:text property="login" size="40" />
  </div>
  <div style="left: 28px; top: 243px; position: absolute">
   <html:errors property="login" />
  </div>


  <div style="left: 28px; top: 260px; position: absolute">
   <bean:message key="literal.password" />*
  </div>
  <div style="left: 28px; top: 280px; position: absolute">
  <html:password property="password1" size="40" />
  </div>
  <div style="left: 28px; top: 303px; position: absolute">
   <html:errors property="password1" />
  </div>

  <div style="left: 320px; top: 260px; position: absolute">
   <bean:message key="literal.confirmarPassword" />*
  </div>
  <div style="left: 320px; top: 280px; position: absolute">
   <html:password property="password2" size="40" />
  </div>
  <div style="left: 320px; top: 303px; position: absolute">
   <html:errors property="password2" />
  </div>


  <div style="left: 28px; top: 330px; position: absolute">
   
<bean:message key="literal.consulta.generoCine" />
  </div>
  
<% int i = 0;%>
  
<logic:iterate id="generoCine" name="RegistroActionForm" property="generoCinePosibles" >
   
<% i++;
     switch (i) {
      case 1:%>

       <div style="left: 28px; top: 350px; position: absolute">
   
<%
      break;
      case 2:%>

       <div style="left: 220px; top: 350px; position: absolute">
   <%}%>

   
<html:multibox property="generoCineSeleccionados">
    <bean:write name
="generoCine" />
   </html:multibox>
   <%
     switch (i) {
      case 1:
   %>
       <bean:message key
="literal.comedia" />
   <%
       break;
      case 2:%>
       <bean:message key
="literal.musical" />
   <%}%>
   
</div>
  </logic:iterate>



  <div style="left: 230px; top: 440px; position: absolute">
   <html:reset>
    <bean:message key="literal.restaurar" />
   </html:reset>
  </div>
  <div style="left: 320px; top: 440px; position: absolute">
   <html:submit>
    <bean:message key="literal.enviar" />
   </html:submit>
  </div>
 </html:form>
</body>
</html>

En el fichero literales/ApplicationResource.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
literal.password=Password
literal.confirmarPassword=Confirmar Password

literal.consulta.generoCine=¿Qué géneros de cine te gustan más?
literal.comedia=Comedia
literal.musical=Musical

literal.enviar=Enviar
literal.restaurar=Restaurar

error.nombre.requerido=Nombre obligatorio
error.apellido.requerido=Apellido obligatorio
error.email.requerido=Email obligatorio
error.email.incorrecto=Email incorrecto
error.codigoPostal.requerido=Código postal obligatorio
error.codigoPostal.incorrecto=Código postal incorrecto
error.login.requerido=Login obligatorio
error.password.requerido=Password obligatorio
error.password.incorrecto=Longitud mínimo 8 carcateres
error.confirmarPassword.requerido=Confirmar password obligatorio
error.confirmarPassword.incorrecto=Los dos passwords no coinciden

errors.header=
errors.prefix=<span style="font-size: 10px; color: red" >
errors.suffix=</span>
errors.footer=

Y ahora al formulario le vamos a añadir 4 géneros de cine más con las siguientes posiciones

Navegador - Formulario Registro usuuario Struts 1.2 - ¿Qué géneros de cine te gustan más? | Comedia | Musica | Aventura | Policiaco | Clásico | Melodrama


Este es el código de la página JSP registroForm.jsp con todos los géneros de cine del formulario

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Formulario Registro usuario Struts 1.2</title>
 <link rel="stylesheet" href="/proregusuariostruts/css2/estilos.css" type="text/css">
</head>
<body>
 <html:form action="registro">
  <html:hidden property="submitRealizado" value="true" />
  <div style="left: 210px; top: 10px; font-size: 24px;
       font-weight: bold; position: absolute">
   <bean:message key="literal.registroUsurario" />
  </div>
  <div style="left: 250px; top: 40px; font-size: 10px; position: absolute">
   *<bean:message key="literal.camposRequeridos" />
  </div>

  <div style="left: 28px; top: 80px; position: absolute">
   <bean:message key="literal.nombre" />*
  </div>
  <div style="left: 28px; top: 100px; position: absolute">
   <html:text property="nombre" size="40" />
  </div>
  <div style="left: 28px; top: 123px; position: absolute">
   <html:errors property="nombre" />
  </div>

  <div style="left: 320px; top: 80px; position: absolute">
   <bean:message key="literal.apellido" />*
  </div>
  <div style="left: 320px; top: 100px; position: absolute">
   <html:text property="apellido" size="40" />
  </div>
  <div style="left: 320px; top: 123px; position: absolute">
   <html:errors property="apellido" />
  </div>


  <div style="left: 28px; top: 140px; position: absolute">
   <bean:message key="literal.email" />*
  </div>
  <div style="left: 28px; top: 160px; position: absolute">
   <html:text property="email" size="40" />
  </div>
  <div style="left: 28px; top: 183px; position: absolute">
   <html:errors property="email" />
  </div>

  <div style="left: 320px; top: 140px; position: absolute">
   <bean:message key="literal.codigoPostal" />*
  </div>
  <div style="left: 320px; top: 160px; position: absolute">
   <html:text property="codigoPostal" size="5" />
  </div>
  <div style="left: 320px; top: 183px; position: absolute">
   <html:errors property="codigoPostal" />
  </div>


  <div style="left: 28px; top: 200px; position: absolute">
   <bean:message key="literal.login" />*
  </div>
  <div style="left: 28px; top: 220px; position: absolute">
   <html:text property="login" size="40" />
  </div>
  <div style="left: 28px; top: 243px; position: absolute">
   <html:errors property="login" />
  </div>


  <div style="left: 28px; top: 260px; position: absolute">
   <bean:message key="literal.password" />*
  </div>
  <div style="left: 28px; top: 280px; position: absolute">
  <html:password property="password1" size="40" />
  </div>
  <div style="left: 28px; top: 303px; position: absolute">
   <html:errors property="password1" />
  </div>

  <div style="left: 320px; top: 260px; position: absolute">
   <bean:message key="literal.confirmarPassword" />*
  </div>
  <div style="left: 320px; top: 280px; position: absolute">
   <html:password property="password2" size="40" />
  </div>
  <div style="left: 320px; top: 303px; position: absolute">
   <html:errors property="password2" />
  </div>


  <div style="left: 28px; top: 330px; position: absolute">
   <bean:message key="literal.consulta.generoCine" />
  </div>
  <% int i = 0;%>
  <logic:iterate id="generoCine" name="RegistroActionForm" property="generoCinePosibles" >
   <% i++;
     switch (i) {
      case 1:%>
       <div style="left: 28px; top: 350px; position: absolute">
   <%
       break;
      case 2:%>
       <div style="left: 220px; top: 350px; position: absolute">
   <%
       break;
      case 3:
   %>

       <div style="left: 420px; top: 350px; position: absolute">
  
 <%
       break;
      case 4:
   %>

       <div style="left: 28px; top: 370px; position: absolute">
 
  <%
       break;
      case 5:
   %>

      <div style="left: 220px; top: 370px; position: absolute">
   
<%
       break;
      case 6:
   %>

      <div style="left: 420px; top: 370px; position: absolute">

   <%}%>

   <html:multibox property="generoCineSeleccionados">
    <bean:write name="generoCine" />
   </html:multibox>
   <%
     switch (i) {
      case 1:
   %>
       <bean:message key="literal.comedia" />
   <%
       break;
      case 2:%>
       <bean:message key="literal.musical" />
   <%
       break;
      case 3:
   %>

       <bean:message key="literal.aventura" />
   <%
       break;
      case 4:
   %>

       <bean:message key="literal.policiaco" />
   <%
       break;
      case 5:
   %>

       <bean:message key="literal.clasico" />
   <%
       break;
      case 6:
   %>

       <bean:message key="literal.melodrama" />

   <%}%>
   </div>
  </logic:iterate>



  <div style="left: 230px; top: 440px; position: absolute">
   <html:reset>
    <bean:message key="literal.restaurar" />
   </html:reset>
  </div>
  <div style="left: 320px; top: 440px; position: absolute">
   <html:submit>
    <bean:message key="literal.enviar" />
   </html:submit>
  </div>
 </html:form>
</body>
</html>

y este es el fichero literales/ApplicationResource.properties con las sguientes llaves añadidas

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
literal.password=Password
literal.confirmarPassword=Confirmar Password

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
literal.restaurar=Restaurar

error.nombre.requerido=Nombre obligatorio
error.apellido.requerido=Apellido obligatorio
error.email.requerido=Email obligatorio
error.email.incorrecto=Email incorrecto
error.codigoPostal.requerido=Código postal obligatorio
error.codigoPostal.incorrecto=Código postal incorrecto
error.login.requerido=Login obligatorio
error.password.requerido=Password obligatorio
error.password.incorrecto=Longitud mínimo 8 carcateres
error.confirmarPassword.requerido=Confirmar password obligatorio
error.confirmarPassword.incorrecto=Los dos passwords no coinciden

errors.header=
errors.prefix=<span style="font-size: 10px; color: red" >
errors.suffix=</span>
errors.footer=

Página anterior
Ignasi Pérez Valls
Infosintesis Solutions Group


Junio 2009
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...