FeaturesPluginsDocs & SupportCommunityPartners

>> Más documentación Visual Web Pack

Introducción al NetBeans Visual Web Pack 5.5

Diciembre 2006 [Número de revision: V1-2]

 
 

Este tutorial te da una visión general del NetBeans Visual Web Pack.  El tutorial te muestra como usar las características del Visual Web Pack para realizar las típicas fases del desarrollo de una aplicación web.

El tutorial esta diseñado para que tu no necesites ir a través de él en un orden particular.  Tu podrías querer revisarlo rápidamente y luego regresar a cada sección como tu tiempo te lo permita.  Si tu prefieres un tutorial paso a paso, tu podrías querer ver primero el tutorial Desarrollando una Aplicación Web.

Contenido

Software necesario para este tutorial
Iniciando un proyecto
Creando páginas web
Adicionando componentes a una página web
Obteniendo ayuda
Construyendo y testeando una aplicación web
Conectando páginas web y manejando acciones del usuario
Editando código java
Manejando entradas del usuario
Almacenando y pasando datos
Conectando a bases de datos
Depurando una aplicación web
  Content on this page applies to NetBeans 5.5 Visual Web Pack

Este tutorial funciona con las siguientes tecnologías y recursos.

Componentes JavaServer Faces/
Plataforma Java EE
works with1.2 con Java EE 5*
works with1.1 con J2EE 1.4
Base de datos Travel requiredRequerida para algunas secciones
BluePrints AJAX Component Library not requiredNo requerida

* En el momento en que este tutorial fue publicado, solo Sun Java System Application Server soportaba Java EE 5.

Este tutorial ha sido adaptado para usar Sun Java Application Server PE 9.0 Update Release 1 y con Tomcat 5.5.17. Si tu estás usando un servidor diferente, consulta las Notas de Entrega y las  FAQs para conocer problemas y soluciones temporales.  Para información detallada acerca de los servidores soportados y la plataforma Java EE, mira las Notas de Entrega.

Iniciando un Proyecto

Un proyecto es el equivalente de tu ambiente de trabajo para una aplicación web.  Cuando tu creas un proyecto de aplicación Visual Web  desde el IDE, el IDE construye los fundamentos para una aplicación web usando la tecnología JavaServer Faces (JSF).  Por defecto el IDE crea una aplicación web JSF 1.2 dentro de una estructura de directorios  de acuerdo a las convenciones para proyectos Java BluePrints para aplicaciones web.

Nota:  Todos los pasos en este tutorial están basados en un proyecto Visual Web Pack por defecto, el cual usa JSF 1.2 y Java EE 5.

Tu creas un proyecto de aplicación Visual Web escogiendo desde el menú principal File > New Project, selecciona la categoría Web y selecciona un proyecto Visual Web Application como tipo.


Intenta esto

  1. Inicia el IDE usando la opción adecuada desde la siguiente lista:

    • Windows. Doble-click al icono de NetBeans ubicado en el escritorio.  
    • Mac. Doble-click al icono de NetBeans ubicado dentro de la carpeta de instalación.  
    • Sistema Operativo Solaris (SPARC y x86 Platform Editions) y Linux. Navega a el directorio bin de tu instalación de NetBeans, digita ./netbeans y presiona Enter.

  2. Click en la Etiqueta Runtime, o escoge Window > Runtime desde el menú principal, para traer la ventana Runtime a el frente.  
  3. Crea un proyecto escogiendo File > New Project desde el menú principal.  En el panel de categorías, selecciona Web, y en el panel de proyectos, selecciona Visual Web Application.  
  4. Click en Next.  
  5. Escoge un servidor y una versión de Java EE.  
  6. Click en Finish para aceptar el nombre y la ubicación por defecto del proyecto.  

    El IDE crea el directorio del proyecto dentro de tu directorio personal por defecto.  
  7. Explora la ventana Projects.  Como se muestra en la siguiente figura, la ventana Projects agrupa los items por categoría.  Expande cada nodo para ver que tipo va en cada categoría.  Nota la marca que aparece cerca a el nodo Application Bean.  Esta marca indica que el archivo necesita ser compilado.  El IDE compila los archivos automáticamente cuando tu construyes el proyecto.  
  8. Figure 1: Projects Window
    Figura 1: Ventana Projects
  9. Bajo el nodo Web Pages esta el nodo Page1.jsp.  El IDE crea esta página por defecto y la hace la página de inicio.  La marca de flecha cerca a el nodo identifica a la página como la página de inicio.  Si tu quieres usar una página diferente como página de inicio, haz click derecho en el nodo de la página y escoge Set as Start Page desde el menú emergente. 
  10. Click en la etiqueta Files, o escoge Window > Files desde el menú principal, para traer la ventana Files a el frente.  Esta ventana organiza los items por su almacenamiento físico.  Expande los nodos para ver la estructura.  


  11. Figure 2: Files Window
    Figura 2:Ventana Files
  12. En la figura 2, nota el nodo WebApplication1 > src > java > gettingstarted > Page1.java.  Esta clase Java es el backing bean para el archivo Page1.jsp.  Cada vez que tu adicionas una página al proyecto, el IDE crea un archivo .jsp y un archivo .java  para la página.  Tu aprenderas más acerca de archivos .jsp y .java en la próxima sección.  

Para más información


  • Desde el menú principal, escoge Help > Help Contents > Contents > Visual Web Pack > Starting With Visual Web Application Projects > About Visual Web Application Projects.

Creando Paginas Web

Con aplicaciones Visual Web, tu usas páginas JavaServer (JSP) y page beans (también conocidos como backing beans) en lugar de páginas HTML.  Las páginas JSP son plantillas desde la cual el servidor genera las respuestas HTML para que sean desplegadas en el navegador del cliente.  La page bean contiene la lógica que el servidor ejecuta cuando genera la respuesta HTML.  El page bean también contiene la lógica que el servidor ejecuta después que el usuario ha enviado la página.

Cuando tu adicionas una página web a una aplicación Visual Web, el IDE crea una archivo JSP y un archivo fuente Java por ti.  Tu, la mayoría de las veces, vas a usar el Visual Designer (Diseñador Visual) y la ventana de propiedades para desarrollar las páginas web.  El IDE modifica el código JSP y el código Java para implementar lo que tu diseñas.  La mayoría de tu trabajo puede ser hecho desde el Visual Designer y la ventana de propiedades.

Nota: Las páginas JSP que el IDE genera son documentos JSP.  Un documento JSP es un documento XML y, por lo tanto, debe estar bien-formado.  Mientras la mayoría de elementos JSP son compatibles con la sintaxis XML, hay algunos elementos que no lo son, por ejemplo comentarios, declaraciones, directivas, expresiones y scriptlets.  Revisa la Referencia de Sintaxis para Páginas JavaServer para conocer la sintaxis de los documentos JSP.


Intenta esto
  1. En la ventana Projects, click derecho en el nodo Web Pages y escoge New > Page, como se ve en la siguiente figura. 
  2. Figure 3: Right-Clicking the Web Pages Node
    Figura 3: Click derecho al nodo Web Pages 
  3. Acepta el nombre por defecto, Page2, y click en Finish.  El IDE abre Page2 en el Editor Visual, el cual esta en el área de edición, como se muestra en la siguiente figura.  
  4. Figure 4: Visual Designer
    Figura 4: Diseñador Visual
  5. Click al botón en la barra de edición para ver el código fuente para el page bean, como se muestra en la siguiente figura.  Cuando el área de edición muestra el código Java, la ventana Navigator aparece.  Esta ventana lista todos lo campos miembro y los métodos.  Nota que el código fuente de la página tiene métodos para acceder al Application Bean, Session Bean y Request Bean.  Mira la sección Almacenando y Pasando Datos en este tutorial para una explicación sobre estos tres tipos de beans.

  6. Figure 5: Java Source for Page Bean
    Figura 5:Codigo Java para el Page Bean
  7. El código fuente también tiene métodos que son invocados durante ciertos eventos del ciclo de vida entre el tiempo en que la página es solicitada y el tiempo en que la página es renderizada completamente. 
  8. Tip: Doble-click en un miembro dentro de la ventana Navigator posiciona el código fuente en el área de edición sobre la declaración de ese miembro.  Tu puedes también dar click en la ventana Navigator y comenzar a digitar los primeros caracteres del nombre de un miembro para levantar una caja de dialogo de busqueda rápida.  Continua digitando hasta que el IDE resalte la entrada deseada en la lista, y presiona Enter para ubicar el código fuente en la declaración del miembro encontrado, como muestra la siguiente figura.

    Figure 6: Quick Search in the Navigator Window
    Figura 6: Busqueda rapida en la ventana Navigator
  9. Click al botón JSP en la barra de edición para ver el código JSP para la página, como muestra la siguiente figura.  Nota como la página JSP usa la sintaxis de un documento JSP.



  10. Figure 7: JSP View
    Figura 7: Vista JSP 
  11. Click en Design en la barra de edición para cambiarte al Visual Designer y desplegar la representacion de la página en la ventana Outline, la cual se muestra en la siguiente figura.  Nota como las etiquetas en el archivo JSP son representadas como nodos en la ventana Outline.


  12. Figure 8: Outline Window
    Figura 8: Ventana Outline

Para más información

Adicionando Componentes a la página web

Tu diseñas una página web arrastrando componentes desde la ventana Palette y soltandolos sobre la página web en el Visual Disigner.  La siguiente figura muestra Page2 con los componentes Boton, Campo de Texto, Mensaje, Lista Desplegable y Grupo de Radio Botones.  Todos estos componentes están disponibles desde la sección Básico (Basic) de la paleta.  Los componentes han sido personalizados para cambiar las propiedades del componente.  Tu aprenderas acerca de las propiedades después en esta sección.

Figure 9: Components in the Visual Designer
Figura 9: Componentes en el Visual Designer

Nota:  Los componentes que están disponibles desde la Paleta son componentes JSF, los cuales han sido realzados de acuerdo al API de Tiempo de Diseño así que sus propiedades están disponibles para el Diseñador Visual y la ventana de propiedades. Tu puedes usar otros componentes en las aplicaciones web que tu construyas usando el IDE, pero tu no podras usar las características interactivas en tiempo de diseño en estos componentes a menos que ellos hayan sido personalizados de acuerdo a los requerimientos del API de Tiempo de Diseño.  Si la versión de Java EE es configurada a Java EE 5 (por defecto), la Paleta ofrece componentes JSF 1.2.  Si, cuando tu creaste el proyecto, tu configuras la versión de Java EE a 1.3 o 1.4, la Paleta ofrecerá componentes JSF 1.1.

La mayoría de componentes que tu usas están en las secciones Básico (Basic), presentacion (Layout) y combinación (Composite) de la ventana Paleta.  La siguiente tabla muestra algunos de los más comunes componentes usados.

Tabla 1:  Componentes de Entrada


Componente Descripción
Sección en la Paleta
Campo de Texto
(Text Field)
Un campo de entrada para una línea sencilla de texto.
Básico
(Basic)
Area de Texto
(Text Area)
Un campo de entrada para multiples líneas de texto.

Básico
(Basic)
Campo de Contraseña.
(Password Field)
Un campo de entrada que remplaza el  caracter de entrada por otro para ocultar la contraseña.

Básico
(Basic)
Calendario
(Calendar)
Un campo de entrada con un calendario emergente que permite al usuario seleccionar una fecha.

Básico
(Basic)
Lista Desplegable
(Drop Down List)
Un menu desplegable, también se refiere a un combo box.
Básico
(Basic)
Lista
(Listbox)
Una lista desde la cual el usuario puede seleccionar uno o multiples items, dependiendo como el componente este configurado.

Básico
(Basic)
Caja de Confirmación
(Check box)
Una sencillo cuadro que el usuario puede seleccionar o limpiar.

Básico
(Basic)
Radio Botón
(Radio Button)
Un sencillo radio botón que el usuario puede seleccionar.

Básico
(Basic)
Lista Adicionar-Remover
(Add-Remove List)
Dos listas (una para opciones disponibles y otra para opciones seleccionadas) con botones para mover las opciones entre las listas y para ordenar las opciones escogidas.
Compuesto
(Composite)
Cargar Archivo
(File Upload)
Un componente con un campo de entrada de texto y un botón Buscar (Browse) que despliega un seleccionador de archivos para especificar un archivo a cargar.  La aplicación carga el archivo especificado cuando el usuario envía la página.
Básico
(Basic)
 

Tabla 2:  Componentes de Despliege

Componente Descripción

Sección de la Paleta
Texto Estático
(Static Text)
Un campo para desplegar texto.

Básico
(Basic)
Etiqueta
(Label)
Campo de texto que puede ser asociado con una entrada de texto para la cual tu puedes especificar un débil, medio o fuerte estilo de fuente.
Básico
(Basic)
Imagen
(Image)
Imagen en línea.
Básico
(Basic)
Mensaje
(Message)
Campo de texto que es enlazado a un componente específico para desplegar errores de validación y otros mensajes acerca de ese componente.
Básico
(Basic)
Grupo de Mensajes
(Message Group)
Campo de texto para desplegar mensajes de error en tiempo de ejecución, mensajes de error generados por el programa, y, opcionalmente, errores de validación y otros mensajes acerca de componentes que están en la página.
Básico
(Basic)
Alerta
(Alert)
Despliega un icono e información sobre una advertencia, un error o la ejecución exitosa de algun evento.
Compuesto
(Composite)
Alerta de Página
(Page Alert)
Similar al un componente de Alerta, pero este intenta desplegar el icono y la información en una página separada.
Presentación
(Layout)
 

Tabla 3: Componentes para Agrupar

Componente Descripción Sección de la Paleta
Grupo de Cajas de Verificación
(Checkbox Group)
Despliega dos o más cajas de verificación en una rejilla

Básico
(Basic)
Grupo de Radio Botones
(Radio Button Group)
Despliega dos o más radio botones en una rejilla y se asegura que sólo un botón pueda se seleccionado a la vez.
Básico
(Basic)
Tablas, Grupo de Filas de una Tabla, Columna de una Tabla
(Table, Table Row Group, and Table Column)
Despliega datos desde un tipo de datos compuesto como una tabla de base de datos o un arreglo.

Básico
(Basic)
Arbol y Nodos de un Arbol
(Tree and Tree Node)
Renderiza una lista expandible en una estructura de árbol.

Básico
(Basic)
Conjunto de Pestañas y Pestañas
(Tab Set and Tab)
Despliega diferentes capas en una misma página.  También puede ser usada como una herramienta de navegación. Presentación
(Layout)
Panel en Rejilla
(Grid Panel)
Organiza los componentes dentro de una capa de filas y columnas.

Presentación
(Layout)
Panel Agrupado
(Group Panel)
Agrupa un conjunto de componentes en un modo de disposición de flujo.

Presentación
(Layout)
Panel en Capas
(Layout Panel)
Se usa para agrupar un conjunto de componentes en un modo de disposición de flujo o modo de disposición en rejilla. Presentación
(Layout)
Propiedades de Hoja, Sección de Propiedades de Hoja y Propiedades
(Property Sheet, Property Sheet Section, and Property)
Presenta un columna sencilla de componentes etiquetados rápidamente, y divide los componentes dentro de secciones. Presentación
(Layout)
Etiquetas
(Breadcrumbs)
Presenta una serie de componentes enlazados separados por corchetes en ángulo recto (>). Compuesto
(Composite)
Caja de Fragmentos de Página
(Page Fragment Box)
Componenetes agrupados que tu quieres desplegar consistentemente en dos o más páginas. Presentación
(Layout)
 

Tabla 4: Componentes de Acción.

Componente Descripción Sección de la Paleta
Botón
(Button)
Botón que envía en formulario asociado. Básico
(Basic)
Hiperenlace
(Hyperlink)
Campo de texto que envía una URL o un formulario. Básico
(Basic)
Imagen de Hiperenlace
(Image Hyperlink)
Imagen que envía una URL o un formulario. Básico
(Basic)
Nodo de un árbol
(Tree Node)
Subcomponente de un Arbol o Nodo de un Arbol.  Una hoja de un árbol puede opcionalmente envíar una URL o un formulario. Básico
(Basic)
Pestaña
(Tab)
Subcomponente de un Conjunto de Pestañas o una Pestaña.  Una Pestaña puede opcionalmente envíar una URL o un formulario. Compuesto
(Composite)
 

Tu usas la hoja de propiedades de los componentes en la ventana Propiedades (Properties) para cambiar la apariencia y comportamiento de los componentes, para conectar los componentes a los datos, y para asociar los componentes con manejadores de eventos.


La siguiente figura muestra las propiedades para un componente Lista.

Figure 10: Listbox Property Sheet in the Properties Window
Figura 10: Propiedades de una Lista en la ventana Propiedades.
 

Intenta esto

Abre la página que tu creaste (Page2) que siguiendo las sugerencias del Intenta esto  de la sección Creando Páginas Web, o creala si es necesario.

Arrastra varios componentes desde la sección Básico (Basic) y Presentación (Layout) de la Paleta y juega a través de sus propiedades.  Por ejemplo, intenta los siguientes pasos.


  1. Arrastra un componente Botón dentro de la página, digita Click Me! y presiona Enter.  En la ventana Propiedades, nota como la propiedad text tiene el valor Click Me!.  En la ventana Propiedades, selecciona la cajilla de verificación de la propiedad primary y nota como la apariencia del botón cambio. 
  2. Arrastra un componente Text Field dentro de la página.  Luego, arrastra una Etiqueta dentro de la página, digita Name: y presiona Enter.  Ctrl-Shift-Click dentro del componente Etiqueta y arrastra hacia el componente Text Field.  Nota como la propiedad for para la Etiqueta es ahora configurada al id del componente Text Field.  Configura el labelLevel a Strong (1). 
  3. Arrastra un componente Message a la derecha del Text Field.  Control-Shift-Arrastrar desde el componente Message hacia el componente Text Field.  Como con el componente Label, nota como la propiedad for del componente Message esta ahora configurada al id del componente Text Field. 
  4. Arrastra una Lista Desplegable dentro de la página y configura su propiedad  a  .  Right-click en la Lista Desplegable y escoge  Configurar Opciones por Defecto (Configure Default Options) para que aparezca la opción Personalizar Opciones. 
  5. Presiona tab para entrar en el modo edicion para el Item 1 en la columna Display, y digita Blue.  Presiona tab dos veces y cambia el Item 2 a White.  Presiona tab dos veces más y cambia el Item 3 a Green.  Click en OK y observa como tus cambios afectan el componente en el diseñador visual.  
  6. Usa los mismos pasos para el Drop Down List para crear un componente Radio Button Group con las opciones Blue, White y Red. 
  7. En adicion, selecciona la casilla de verificacion Select Items, en el Options Customizer (Personalizador de opciones), y selecciona uno de los radiobotones en la columna Selected para configurar la selección por defecto a ese item.  Click OK para aplicar los cambios y para cerrar el Personalizador de opciones.  En la ventana de Propiedades, configura las propiedad columns (columnas) a 3 para alinear los radiobotones horizontal en lugar de verticalmente.
  8. Click-derecho en una parte en blanco de la página y escoge Preview in Browser (Vista Preliminar en un Navegador) para ver como tu navegador renderiza los componentes.

Para más información

Obteniendo Ayuda

El IDE provee un Visor de Ayuda (Help Viewer), el cual contiene temas de ayuda acerca del IDE.  También, cuando tu presionas F1 en una ventana, cuadro de dialogo, o componente de la Paleta, el visor de ayuda aparece y despliega información acerca de ese item.  Para acceder a los temas de ayuda del Visual Web Pack, incluyendo ayuda acerca de los componentes, escoge Help > Help Contents desde el menú principal y localiza el nodo Visual Web Pack.

El IDE también provee una ventana de Ayuda Dinámica, la cual muestra enlaces a temas de ayuda que están relacionados a la actual ventana u objeto.  Cuando tu haces doble-click a un enlace en la ventana de Ayuda Dinámica, el IDE muestra la información en el visor apropiado, tal como el navegador, el visor de ayuda o el visor Javadoc.


Intenta esto

  1. Adiciona un componente Label a la página en el diseñador visual.  Observa los temas en la ventana de ayuda dinámica.  
  2. Adiciona un componente Drop Down List a la página.  Observa los nuevos temas en la ventana de ayuda dinámica. 
  3. En la ventana de ayuda dinámica, haz un doble-click al nodo del componente Drop Down List para ver el tema en el visor de ayuda.  Cierra el visor de ayuda. 
  4. Click en la ventana Propiedades para el Drop Down List.  Presiona F1 para ver el tema acerca de las propiedades del componente Drop Down List.  
  5. Seleccione el nodo para el componente Text Field en la sección Basic (Básico) de la paleta.  Presione F1 para ver el tema de ayuda acerca del componente Text Field.  

Construyendo y provando una aplicación Web

Cuando tu estas listo para probar un proyecto, presiona F6 o escoge Run > Run Main Project desde el meńu principal.  El IDE ejecuta las siguientes acciones:

  • Guarda cualquier archivo que necesite ser guardado.  
  • Compila cualquier archivo que necesite ser compilado. 

    Si hay complicaciones. el IDE muestra los mensajes de error relacionados en la ventana Output (Salida) mostrada abajo y no continua con el proceso de construcción. 

  • Inicia el servidor de aplicaciones si este no ha sido inicializado aún. 
  • Despliega la aplicación al servidor de aplicaciones.  

    Si hay alguna complicación, el IDE muestra los mensajes de error relacionados en la ventana Output y no continua con el proceso de construcción.  
  • Abre el navegador por defecto y envia la URL para desplegar la aplicación al navegador el cual muestra la página de inicio.

    Figure 11: Output Window
    Figura 11: Ventana Output

Si tu has hecho cambios masivos, borrado algunos items, o tu estas viendo algún comportamiento inesperado, tu puedes escoger Build > Clean and Build Main Project (Construir > Limpiar y Construir el proyecto principal) desde el menú principal.  El IDE borra los directorios  builddist del proyecto, undeploys la aplicación web, y luego construye y deploys la aplicación.


Intenta esto

  1. Si tu proyecto tiene menos de dos páginas, crea una nueva haciendo click-derecho en el nodo Web Pages en la ventana Projects y escogiendo New > Page.
  2. Abra la página de inicio (la página con la marca de una flecha verde) en el diseñador visual.
  3. Arrastre un componente Hyperlink dentro de la página, diginte Next Page, y presione Enter.
  4. En la ventana de propiedades para el componente Hyperlink, click al botón de puntos suspensivos (...) para la propiedad url, seleccione una página diferente en el proyecto, y click OK. Observe como el IDE configura la propiedad url a /faces/page-name.jsp.
  5. Presione F6 para construir y ejecutar la aplicación web.
  6. Observe los mensajes que aparecen en la ventana Output durante el proceso de construcción. También note que las salidas desde el log del servidor aparecen en la pestaña del servidor.
  7. Observe la URL que el IDE envía al navegador.
  8. Cuando la página de inicio aparece en el navegador, click al link Next Page.
  9. En la ventana Runtime, expanda Servers, expanda el nodo del servidor actual, expanda Applications, expanda Web Applications, y observe que existe un nodo para tu proyecto, como se muestra en la siguiente figura.

    Figure 12: Deployed Web Applications
    Figura 12: Deployed aplicaciones web

Para más información

  • Desde el menú principal, escoge Help > Help Contents > Contents > Visual Web Pack > Starting With Visual Web Application Projects > Building a Visual Web Application Project > Building a Visual Web Application Project.

Conectando páginas web y manejando acciones del usuario

Cuando un usuario digita una URL, hace click en un enlace o en un botón, el navegador envía una petición al servidor.  El servidor mapea la petición a una página JSP y usa esa página JSP y sus asociadas páginas bean para renderizar la respuesta.

Tu puedes especificar la navegación entre páginas de dos formas:
  • Tu adicionas un componente de enlace, como un componente Hyperlink, Tree Node o un Tab, a la página y configuras la propiedad url de ese componente a /faces/nombre-de-la-página.jsp. Cuando tu usas la propiedad url para navegar, los datos de formulario no son enviados.  La aplicación web simplemente navega al destino.  
  • Nota: Un componente Tree Node deberia ser usado dentro de un componente Tree o de otro Tree Node.  Un componente Tab deberia ser usado dentro de un componente Tab Set o de otro Tab.
  • Tu usas el editor Page Navigation (Navegación entre páginas) para mapear las acciones hacia las páginas, y el Diseñador Visual y el editor de código Java para crear métodos que manejen las acciones.  Cuando tu usas métodos para manejar las acciones en la navegación entre páginas, los datos de formulario son enviados y procesados antes de que la aplicación web navege a el destino especificado.

Para acceder al editor Page Navegation, haz click derecho en un área en blanco de la página en el Diseñador Visual y escoge la opción Page Navigation.  El editor Page Navigation muestra iconos de páginas para todas las páginas en el proyecto.  Cuando tu haces click en un icono de página en el editor Page Navigation, la página se expande y muestra todas sus componentes de acción.  (Un componente de acción es un componente que tiene una propiedad action, tal como los Botones, los Hiperenlaces o las Pestañas.) Luego, cada componente es un conector.  Tu arrastrar desde el conector a un icono de una página para crear el enlace entre la petición de una acción y la página para ser renderizada como respuesta.  Cuando tu liberas el mouse, el IDE adiciona una representación visual de esa conexión, como lo muestra la conexión etiquetada comonextPage en la siguiente figura.

Figure 13: Page Navigation Editor
Figura 13: Editor Page Navigation 
 

Nota: Cuando una página es enviada, la aplicación web ejecuta conversiones y validaciones antes de ejecutar los métodos de acción.  Si una conversión o validación falla, los métodos de acción no son llamados.  Tu deberlas colocar componentes Message Group en la página durante el desarrollo, para que tu puedas capturar cualquier conversión no esperada o error de validación que pueda prevenir a un método de acción para ser invocado.

Intenta esto
  1. Crea dos páginas llamadas LinkPage1 y LinkPage2. Convierte a LinkPage1 como la página de inicio.
  2. Arrastra un componente Hyperlink dentro de LinkPage1, digita Next Page, y presiona Enter.
  3. Arrastra un componente Botón dentro de LinkPage2, digita Go, y presiona Enter.
  4. Haz doble-click al botón para acceder al método de acción del botón.

    Observa que el método de acción retorna un null. Cuando un método de acción retorna nulo, la aplicación redespliega la página.
  5. Click en Design en el área de edición para cambiar al Diseñador Visual.
  6. En el diseñador visual, click derecho en un área en blanco de LinkPage2 y escoge Page Navigation.
  7. En el editor Page Navigation, click al icono de LinkPage1.jsp para expandirlo, y entonces arrastra un enlace desde el conector del componente hyperlink1 al icono de LinkPage2.jsp.
  8. Doble-click a la etiqueta del conector Case 1 para cambiar al modo edición, doble-click en Case 1 para seleccionar el texto, y digita nextPage y presiona Enter.
  9. Usa pasos similares para crear un conector desde el botón en LinkPage2.jsp para volver a LinkPage1.jsp y llama al conector go.
  10. Click en XML en la barra de edición para ver el actual mapeo XML que es desplegado al servidor, luego cierra el editor Page Navigation y haz click en Save cuando te preguentes si quieres guardar los cambios.
  11. En LinkPage2, haz doble-click al botón para acceder al método de acción de dicho botón.

    Observa que el método de acción ahora retorna la cadena "go". El mapeo que tu creaste en el editor Page Navigation le dice al servidor mostrar LinkPage1.jsp siempre que LinkPage2.jsp retorne "go."
  12. Presione F6 para correr la aplicación y prueba la nueva navegación de la página.

Para más Información

Editando código Java

El editor Java del IDE esta lleno de características que facilitan los procesos de programación, muchas más de las que pueden ser discutidas en este tutorial introductorio. La siguiente lista de ejemplos de características de edición es tan solo la punta del iceberg.
  • Completación de código. La completación de código te permite digitar unos pocos caracteres y entonces escoger desde una lista de posibles clases, métodos, variables y demás para automáticamente completar la expresión.  Para desplegar la caja de completación  de código, presiona Ctrl+Espacio. La caja de completación de código también aparece cuando tu te detines después de digitar un punto que sigue el nombre de un paquete, una variable o el llamado de un método, como se muestra en la siguiente figura.

    Figure 14: Code Completion Box
    Figura 14: Caja de completación de código
  • Javadoc. La característica de completación de código también desplega cualquier Javadoc relacionado. En adición, tu puedes hacer un click derecho en una tipo, campo o método y escoger Show Javadoc (Mostrar Javadoc) para ver el Javadoc para ese item, si el Javadoc esta disponible. Para ver el Javadoc disponible, escoge  Help > Javadoc References. Tu puedes también presionar Shift-F1 para desplegar una herramienta de búsqueda para índices Javadoc.
  • Fijar Imports. Presiona Alt-Shift-F para adicionar las sentencias import necesarias automáticamente.
  • Detección de errores. Una cajilla roja de error aparece en el margen izquierdo de todas las sentencias que no compilarán. Coloca el mouse sobre la caja para ver la descripción del error, como se muestra en la siguiente figura. El IDE también muestra una franja de errores en el margen derecho. Esta franja  representa el archivo completo, no solo las líneas de código que son visibles. Lineas rojas en la franja de errores identifican errores en el código. Doble-click en una línea roja salta a la sentencia erronea. Cuando tu compilas archivos , todos los errores de compilación aparecen en la ventana Output (Salida). Click en un mensaje de error para desplegar el código erroneo en el editor Java.

    Figure 15: Error Detection
    Figura 15: Detección de Errores
  • Atajos del teclado en el editor Java. Tu puedes invocar muchas tareas comunes de edición con una simple combinación de teclas como lo demuestran los siguientes ejemplos. Para aprender más acerca de atajos del teclado escoge Help > Help Contents > Contents > IDE Basics > Keyboard Shortcuts > Editor Shortcuts desde el menú principal.

    Acción Atajo
    Reformatear el código Ctrl-Shift-F
    Borrar la línea actual Ctrl-E
    Mover el punto de inserción a la llave coincidente
    Ctrl-[
    Seleccionar el bloque delimitado por las llaves a la izquierda del cursor Ctrl-Shift-[
    Encontrar palabras: hacia adelante o hacia atras Ctrl-L, Ctrl-K
  • Abreviaciones. Abreviaciones son cortor grupos de caracteres que se expanden a palabras completas o frases cuando tu presionas la barra espaciadora, como muestran los siguientes ejemplos. Para ver la lista completa de abreviaciones, escoge Tools > Options > Advanced Options > Editing > Editor Settings > Java Editor. Haz Click en el botón con los puntos suspensivos (...) para la propiedad de Abreviaciones.

    Código Abreviación
    for (Iterator it = collection.iterator(); it.hasNext();)
    {Object elem = (Object) it.next();}
    forc
    for (int i = 0; i < arr.length; i++) {} fori
    try {|} catch (Exception ex)
    {log("Error Description", ex); } finally {}
    trycatch
  • Clips de código. Cuando tu tienes el editor de código Java abierto, la ventana Palette provee muchos clips de código útil que tu puedes arrastrar y soltar dentro de tu archivo fuente. En esta versión, no aparecen los clips de código para manejar los archivos fuentes de beans, tales como archivos fuente para una aplicación bean o una petición bean.
  • Herramienta para Auto Comentar. Escoge Tools > Auto Comment para que aparezca una caja de dialogo para adicionar comentarios Javadoc.
  • Búsqueda rápida. Si tu haces click en la ventana Navigator y comienzas a digitar el nombre de un método o un campo, una cajilla de dialogo de búsqueda rápida aparece y el IDE resalta la primera entrada coincidente en la lista. Presiona Enter para posicionar el código fuente de Java en la declaración de entrada.

Intenta esto

Nota: En el siguiente ejercicio tu tienes que digitar código en el método destroy. El código que tu digites es solo para ilustrar las características de edición.  Tu normalmente no colocarias codigo como este en este método.  Después de completar los pasos, tu deberlas remover este código.

  1. Crea una página o abre una página existente.  Suelta un componente Hyperlink dentro de la página. Click en Java en la barra de edición para desplegar el código fuente Java.
  2. Click derecho en la margen izquierda y escoge Show Line Numbers (Mostrar número de línea). Presiona Ctrl-G en el código fuente, digita 50 en la caja de dialogo Go To Line (Ir a la línea), y presiona Enter. Click derecho  en el código fuente y escoge Go To desde el menú desplegable. Observa las acciones disponibles desde el submenú.
  3. En la ventana Navigator, doble-click a destroy() para posicionar el código fuente en ese método. en el método destroy() , digita getSessionBean1(). y detente. La caja de completación de texto aparece. Digita d para ver la lista desplegable para destroy(). Presiona Enter para usar la selección. Digita ; y presiona Enter.  Ahora digita this.getH, y detente para que la caja de completación de código aparezca. Si esta no aparece, presiona Ctrl-Space para que aparezca. Mueve el cursor hacia abajo hasta getHyperlink1() y presiona Enter. Digia el punto, detente para que aparezca la caja de completación de código, y digita set.  Después de que aparece la lista con todos los métodos que comienzan con set, digita te para restringir la lista a setText(Object text) y presiona Enter. El IDE inserta setText() después del punto y posiciona el cursor dentro de los parentesis. Digita "hello", presiona End, y digita un ;.
  4. Inicia una nueva línea, digita serr y presiona la barra espaciadora para expandir la abreviación  System.err.println(""). Borra el punto y coma del final de la línea. Presiona F9 para compilar el archivo. La ventana Output despliega varios enlaces a errores. Click al primer enlace que aparece en la ventana. El IDE desplega la sentencia que causó el error.  Vuelve a colocar el punto y coma que habias borrado.
  5. Inicia una nueva línea, digita getSes y presiona Ctrl-K. El IDE remplaza la cadena con la primera palabra coincidente desde el código fuente desde la línea actual. 
  6. Para limpiar el código, coloca el cursor en la primera línea del cuerpo del método  destroy y presiona Ctrl-E para remover esa línea. Usa Ctrl-E para borrar el resto de lineas en el cuerpo del método.
  7. Ubicate sobre los iconos en la barra de edición e intenta cada uno de ellos.
  8. Click derecho en el código fuente de Java y escoge Code Folds desde el menú desplegable. Intenta varias acciones del submenú.
  9. Intenta arrastrar clips de código desde la Paleta para ver que ellos te ofrecen.

Para más información

  • Desde el menú principal, escoge Help > Help Contents > Contents > Java Project Basics > Editing Source Files > About Editing Source Files.
  • Desde el menú principal, escoge Help > Help Contents > Contents > IDE Basics > Keyboard Shortcuts > Editor Shortcuts.

Manejando entradas del usuario

El IDE provee objetos validadores y conversores para facilitar el formateo y verificación de entradas.  Estos objetos pueden ser encontrados en sus respectivas secciones en la Paleta.

Tu conectas una validación a un componente de entrada, tales como los componenetes Text Field (Campos de texto), arrastrando el validador dentro del componente de entrada.  Por ejemplo, después de adicionar un componente Text Field a un página del diseñador visual, tu puedes arrastrarun Length Validator (Validador de longitud) desde la sección Validators en la paleta y soltarlo sobre el Text Field.

Alternativamente, tu puedes soltar el validador sobre la página y configurar la propiedad validator del componente de entrada al objeto validador.  Por ejemplo, tu puedes soltar un Long Range Validator sobre una parte en blanco de la página, la cual adiciona longRangeValidator1 en la ventana Outline.  Tu puedes entonces seleccionar un componente de entrada en el diseñador visual, tal como un componente Text Field, y escoger longRangeValidator1 desde la lista desplegable de su propiedad validatorExpression.  Tu puedes usar el mismo validador para más de un componente

El mecanismo es similar para los conversores.  Tu puedes también asociar conversores con componentes de salida, tales como los componentes Static Text (Texto Estático).  Observa que cuando tu enlazas un componente a un campo proveedor de datos, las conversiones son hechas automáticamente.  Tu aprenderas acerca de conexión a proveedores de datos en la sección Connecting to Databases.

Tu usas la ventana de propiedades del validador para configurar las reglas de validación, tales como el valor mínimo y máximo o la longitud máxima.  De la misma manera, tu usas la ventana de propiedades de los conversores para configurar las reglas de conversión, tales como el patrón que el valor debería coincidir o el método a llamar para hacer la validación.  El conversor Number tiene un asistente especial que aparece cuando tu sueltas un conversor Number dentro de una página o sobre un componente visual.

La sección Basic de la paleta prevee los componentes Message y Message Group para desplegar automáticamente errores de conversión, de validación y mensajes requeridos por los campos.  El componente Message Group despliega mensajes de errores globales, errores en tiempo de ejecución y, opcionalmente, todos los mensajes de error de componentes.  Un componente Message muestra solo los mensajes para el componente al cual fueron enlazados.  Tu enlazas un componente Message a otro componente configurando la propiedad for del componente Message o presionando Ctrl-Shift en el componente Message y arrastrando el mouse al componente el cual tu quieres enlazar el componente Message.

Tu puedes programáticamente enviar mensajes de error personalizados al componente Message Group usando los métodos error, warn, fatal, e info en cualquier Página Bean.  Para aprender más acerca de estos métodos, escoge Tools > Javadoc Index Search, digita en el campo de texto de la lista desplegable y haz click en Find.

Intenta esto
  1. Crea una página y arrastra un botón sobre ella.  Configura el texto del botón a Go.
  2. Arrastra un Text Field sobre la página.  En la ventana de propiedades para el componente Text Field, selecciona la caja de verificación de la propiedad required.
  3. Suelta un componente Label arriba del Text Field, digita Price: y presiona Enter.
  4. En la ventana propiedades para el componente Label, selecciona textField1 desde la lista desplegable en la propiedad  for.  Nota como la etiqueta en el diseñador visual muestra un asterisco para indicar que la entrada es requerida por su componente Text Field asociado.
  5. En la paleta, expanda la sección Validators.  Arrastre un Double Range Validator y suéltelo sobre el componente Text Field. En la ventana Outline, seleccione el recién creado nodo doubleRangeValidator1. En la ventana propiedades para el validador, configura el máximo a  10.0 y el mínimo a 1.0, como muestra la siguiente figura.

    Figure 16: Double Range Validator Properties
    Figura 16: Propiedades del Double Range Validator
  6. En la paleta, expande la sección Converters. Arrastra un conversor Number Converter y suéltalo sobre el componente Text Field. Una caja de dialogo Number Format aparece, como muestra la siguiente figura. Selecciona currency (moneda) desde la lista desplegabe Type (Tipo), selecciona English (United States) desde la lista desplegable para Locale (Localización), y haz click en OK.

    Figure 17: Number Format
    Figura 17: Formato Número
  7. Adiciona un componete Message a la página. Presiona Ctrl-Shift sobre el componente y arrastra hacia el componente Text Field.

    Observa que el IDE configura la propiedad for del componente Message al id del componente Text Field.
  8. Adiciona un componente Message Group a la página.
  9. Configura esta página como la página de inicio y corre la aplicación.  Intenta hacer click en el botón sin introducir algún precio, con un precio de 1.5, con un valor no numérico, y con un precio mayor a $10.00. Finalmente, digita $1.50 en el campo de texto y haz click en el botón.

    Observa como la aplicación rechaza todos los valores que no se ajustan al formato de número y que no caen dentro del rango especificado.  Note los diferentes mensajes que aparecen en los componentes Message y Message Group.
  10. Experimenta seleccionando la caja de verificacion para la propiedad showGlobalOnly del componente Message Group.

Almacenando y pasando datos

Tu usas el Bean de aplicación, el Bean de sesión, y el Bean de petición para almacenar informacion del usuario para otras páginas.

  • Usa el Bean de aplicación (Application Bean) para información que aplique a todas las sesiones de usuario, tales como listas de opciones estáticas para un componente desplegable.
  • Usa el Bean de sesión (Session Bean) para almacenar información del usuario para otras páginas a lo largo de la sesión del usurio, tales como el nombre de usuario.
  • Si tu solo necesitas la información del usuario para la siguiente página, usa el Bean de petición (Request Bean).

    Cualquier valor que tu almacenes en un Request Bean desaparece tan pronto como la petición finaliza.  Una petición es una transmisión sencilla de una petición HTTP desde el cliente al servidor más la correspondiente respuesta, la cual puede ser otra página.  En la mayoría de los casos, la petición comienza con un click a un botón o un enlace y termina con la respuesde de una página HTML para ser desplegada.

    Nota: El Request Bean es instanciado solo si la página que inicia la petición almacena valores en las propiedades del Request Bean, tales como cuando un componente de entrada es enlazado a una propiedad del Request Bean como se describe abajo.

    Advertencia: Tu no puesdes usar el Request Bean si tu has incluido el elemento <redirect> dentro del elemento <navigation-case>de una regla de navegación. (Tu ves estas reglas cuando tu haces click en el botón Source en el editor Page Navigation.) Cuando la página es enviada, el elemento <redirect> redirige la página y finaliza la petición antes de que una página subsecuente pueda usar cualquera de los valores almacenados en el Request Bean.

Para adicionar una propiedad al Session Bean, haz click derecho al nodo SessionBean1 en la ventana Outline y escoge Add > Property.  El IDE adiciona una declaración, un método getter y un método setter para la propiedad.  La propiedad aparece como un subnodo debajo de SessionBean1 en la ventana Outline, pero usualmente no de inmediato.  Usa pasos similares para adicionar una propiedad al Request Bean o al Application Bean.

Nota que tu puedes también adicionar propiedades a un page bean (el bean de respaldo que el IDE crea para cada página).  Para adicionar una propiedad a un page bean, haz click derecho en una parte en blanco de la página en el diseñador visual y escoge Add > Property desde el menú emergente.  Sin embargo, los valores de las propiedades de un page bean se pierden tan pronto como el page bean es inicializado.  Por ejemplo, cuando el usuario hace click a un botón que re-renderiza la página (esto es, el método de acción retorna nulo), una nueva instancia de ese page bean es creado, y los valores de las propiedades del page bean son re-inicializados.  Si tu quieres pasar un valor de vuelta al servidor para su procesamiento (postback), tu puedes usar componentes Hidden Field (de campo oculto).

Para asociar un componente con su propiedad de bean, haz click derecho al componente y escoge Bind to Data (Enlazar a datos).  En la caja de dialogo Bind to Data, seleccina la pestaña Bind to Object (Enlazar al objeto) y escoge la propiedad del bean, como muestra la siguiente figura.

Figure 18: Bind to Data Dialog Box
Figura 18: Caja de dialogo Bind to Data
 

Nota: Para la mayoría de componentes, el menú emergente provee dos acciones de enlace - Property Bindings (Propiedades de enlace) y Bind to Data (Enlazar a datos). La caja de dialogo para propiedades de enlace te permite enlazar cualquiera de las propiedades del componente a una propiedad de bean manejado o un campo proveedor de datos.  La caja de dialogo para enlazar a datos es un atajo para enlazar la propiedad value-holding de un componente a una propiedad de bean manejado o un campo proveedor de datos.  Usa la pestaña Bind to Data Provider (Enlazar a proveedor de datos) para enlazar a cualquier proveedor de datos que tu haz adicionado a la página o a un bean manejado.  Usa la pestaña Bind to an Object (Enlazar a un objeto) para enlazar a una propiedad de página o propiedad de un bean manejado.


Intenta esto
  1. Click derecho al nodo RequestBean1 en la ventana Outline y escoge Add > Property. Nombra la propiedad parm, hazla un String, y click en OK.

    Observa que la recién adicionada propiedad podría no aparecer en la ventana Outline. Para hacer que la propiedad aparezca, haz click derecho en el diseñador visual y escoge Refresh desde el menú emergente. Tu puedes también abrir y guardar el archivo fuente de RequestBean1 para hacer que la propiedad aparezca, como tu lo harás en los siguientes pasos.
  2. En la ventana Outline, haz click derecho en el Request Bean y escoge Edit Java Source (Editar código Java) desde el menú emergente.
  3. Baja al fondo del archivo fuente para ver los métodos getParm y setParm que el IDE adicionó para la propiedad.
  4. Cierra y guarda el archivo.
  5. Crea una página llamada First con un componente botón y un campo de texto.
  6. Haz click derecho al campo de texto y escoge Bind to Data desde el menú emergente. Haz click a la pestaña Bind to an Object, selecciona RequestBean1 > parm, y haz click en OK.
  7. Crea una página llamada Next. Adiciona un componente Botón y un componente Static Text.
  8. Enlaza el componente Static Text en la página Next a RequestBean1 > parm usando los mismos pasos que tu usaste para el campo de texto en la página First. 
  9. Haz click derecho en el código fuente y escoge Page Navigation desde el menú emergente.
  10. En el editor Page Navigation, crea un conector desde el componente Botón en la página First hacia la página Next.  Mantén el componente Botón en la página Next solo, porque tu quieres que ese botón cause un simple re-renderizado en la página Next.
  11. Configure First.jsp como página de inicio y ejecuta la aplicación. Entre un valor y haz click en el botón. Nota que la página Next despliega el valor que tu ingresaste en la página First. Detrás de escena, una instancia de RequestBean1 fue instanciada para almacenar el valor del componente Text Field en la propiedad parm. El valor de esa propiedad parm fue subsecuentemente recuperado para la respuesta (El HTML para la página Next). Una vez la respuesta fue renderizada, la instancia del RequestBean1 fue destruida.
  12. Haz click al botón que esta en la página Next para causar un re-renderizado a si misma.  Observa como el componente Static Text no muestra más el valor. Esto es porque la instancia del RequestBean1 mantuvo el valor solamente vivo tanto como la petición que comenzó cuando la página First fue enviada y esta finalizó cuando el HTML para la página Next fue enviado de vuelta al cliente.  

Conectado a bases de datos

La ventana Runtime incluye el nodo Databases, el cual muestra todas las bases de datos que están registradas con el IDE, como muestra la siguiente figura.  El Visual Web Pack provee un ejemplo de una base de datos llamada TRAVEL la cual usarás en el resto de este tutorial.

Figure 19: Data Sources
Figura 19: Fuentes de datos
 

Antes de que tu puedas acceder a una base de datos desde un proyecto, tu deberías primero conectar el IDE a la base de datos.  Tu deberlas hacer esto cada vez que tu arrancas el IDE y abres un proyecto que esta conectado a la base de datos.

Si la marca de la base de datos esta rota y tu no puedes expandir su nodo, el IDE no esta conectado a la base de datos.  Para conectar a la base de datos TRAVEL, haz click la nodo databases en la ventana Runtime y escoge Connect desde el menú emergente.  Si el dialogo Connect aparece, introduce travel como Password y selecciona Remember Password During This Session (Recordar password durante esta sesión).  Si tu no ves un nodo jdbc para la base de datos TRAVEL, revisa la sección Visual Web Pack Sample Database en las instrucciones de instalación del NetBeans Visual Web Pack para obtener información de como hacer disponible esta base de datos al IDE.

Nota: Si tu aplicacion web usa un servidor diferente al Sun Java Application Server, tu deberlas colocar una copia del archivo  derbyclient.jar en el directorios de librerías de tu servidor.  Por ejemplo, si tu quieres usar la base de datos TRAVEL con Tomcat, copia el archivo derbyclient.jar dentro de directorio-de-instalación-de-netbeans\enterprise3\apache-tomcat-5.5.17\common\lib.  Tu puedes encontrar una copia del archivo derbyclient.jar en 
javadb\lib\derbyclient.jar
bajo el directorio de instalación del Sun Java Application Server.

Cuando tu abres un proyecto existente, el diseñador visual podría mostrar una pantalla de error.  Típicamente, esto ocurre porque el diseñador visual necesita obtener información desde la base de datos, pero el IDE no esta conectado a ella.  Intenta conectarte al servidor de la base de datos y haz click en el botón Continuar en la pantalla de error para resolver el problema.

Tu puedes conectar una página a una tabla de la base de datos arrastrando la tabla desde la sección de fuentes de datos y soltarla sobre un componente o sobre la página.  Cuando tu haces esto, el IDE adiciona un proveedor de datos a la página y un rowset (conjunto de filas) a la clase SessionBean1, como muestra la siguiente figura.

Figure 20: Data Provider and Row Set
Figura 20: Proveedor de datos y conjunto de filas
 

El objeto rowset hace la conexión a la base de datos, ejecuta las consultas y gestiona el conjunto de resultados.  El objeto proveedor de datos provee una interface común para acceder a muchos tipos de datos compuestos, desde las tablas de la base de datos, a objetos ArrayList o a Enterprise JavaBeans.  Típicamente, la única vez que tu trabajas con el objeto rowset es cuando tu necesitas configurar los parámetros de consulta.  En la mayoría de los casos, tu usas el objeto proveedor de datos para acceder y manipular los datos.

Una vez haz adicionado un proveedor de datos a un proyecto, tu puedes enlazar un componente al proveedor de datos haciendo click derecho al componente y escogiendo Bind to Data.  En el dialogo Bind to data, haz click en la pestaña Bind to Data Provider para traerla al frente.  La lista Choose a Data Provider (Escoger un proveedor de datos) muestra todos los proveedores de datos del proyecto de los cuales tu puedes seleccionar uno para enlazar al componente.  Después de seleccionar el proveedor de datos, escoge la columna apropiada para ser enlazada al componente.  Para algunos componentes, como el componente Drop Down List, tu debes escoger un Value Field (Campo de valor) y un Display Field (Campo de despliegue).

Tu usas el Query Editor (Editor de consultas) de un objeto rowset para definir la sentencia SQL a ser usada para recuperar los datos, como muestra la siguiente figura.

Figure 21: Query Editor
Figura 21: Editor de consultas
 
Intente esto
  1. Crea un página, haz la página de inicio y arrastra un componente Listbox dentro de la página
  2. En la ventana Runtime, expande el nodo Databases, expande el nodo jdbc para la base de datos TRAVEL, y expande el nodo Tables.
  3. Arrastra el nodo TRIPTYPE y suéltelo sobre la página.

    Si la marca de la base de datos TRAVEL esta rota y tu no puedes expandir el nodo de la base de datos, el IDE no esta conectado a la base de datos. Para conectarte a la base de datos TRAVEL, haz click derecho en el nodo databases en la ventana Runtime y escoge Connect desde el menú emergente.  Si el dialogo Connect aparece, introduce travel como password, selecciona Remember Password During This Session y haz click en OK.
  4. Haz click derecho al componente Listbox y escoge Bind to Data desde el menú emergente.
  5. En el dialogo Bind to Data, haz click a la pestaña Bind to Data Provider, y asegúrate que tripTypeDataProvider esta seleccionado en la lista desplegable.
  6. Configura Value Field a TRIPTYPE.TRIPTYPEID (la selección por defecto) y Display Field a TRIPTYPE.DESCRIPTION. Click en OK.
  7. Corre la aplicación para ver como la listbox es llenada con datos desde la tabla.
  8. Expande SessionBean1 en la ventana Outline y haz doble-click al nodo triptypeRowSet para abrir su Query Editor.  En la fila DESCRIPTION del panel, escoge  Ascending (Ascendente) desde la lista desplegable en la columna Sort Type (Tipo de ordenamiento).
  9. Haz click a la X en la pestaña del Query Editor para cerrarlo, y corre el programa de nuevo. Nota como los items ahora aparecen en orden alfabético.
  10. (Opcional) Mira en el método _initen el código fuente de Java de la página para ver el código asociado al proveedor de datos con el rowset.  Este método aparece enrollado por defecto.  Para desenrollar este código, haz click en el signo + que aparece próximo a la margen izquierda.

    Haz doble-click al nodo Session Bean en la ventana Projects para abrir el código fuente de Java para el bean de sesión.  Mira en el método _init del bean de sesión como el código del rowset implementa la consulta SQL.  Haz click derecho en el proveedor de datos y métodos del rowset y escoge Show Javadoc desde el menú emergente para ver la documentación acerca de lo que los métodos hacen.
  11. (Opcional) Escoge Help > Javadoc References > Data Provider y escoge Help > Javadoc References > RowSet para ver le API relacionado.

Para más información

Depurando una aplicación web

El IDE tiene un depurador integrado para ayudarte a localizar errores en tus programas, como es mostrado en la siguiente figura.  Tu puedes usarlo para configurar pausas intencionales (breakpoints) y vistas (watches), avanzar paso a paso a través de tu código y para para correr el programa hasta alcanzar la sentencia de código donde el cursor se encuentra.

Tu configuras una pausa intencional (breakpoint) haciendo click en la margen izquierda del editor Java.  Tu configuras una vista (watch) haciendo click derecho a una variable o expresión y escogiendo New Watch.  Para correr el depurador, escoge Run > Debug Main Project o Run > Run to Cursor desde el menú principal.

Figure 22: Debugger Window
Figura 22: Ventana Depurador
 

Tip: Aquí están algunas otras características que tu puedes usar para diagnosticar y resolver problemas:

  • Usa el Monitor HTTP para  monitorear la comunicación cliente-servidor y para relanzar peticiones HTTP.  La habilidad para relanzar peticiones puede ser útil cuando tu página tiene varios campos de entrada y tu quieres re-crear la petición HTTP sin tener que llenar todos los campos.
  • Adiciona un componente Message Group a la página y usa los métodos error, warn, fatal, e info para desplegar mensajes de diagnóstico en el componente.
  • Usa el método log para enviar mensajes de diagnóstico al log del servidor.

Intenta esto
  1. Crea, o reusa, una página de inicio. Adiciona un componente Static Text, configura su propiedad text a Hello, y su propiedad id a helloText.
  2. Adiciona un Botón.  Haz doble click al botón para acceder su método de acción (button1_action) y reemplaza el cuerpo del método con el siguiente código:

    Ejemplo de código 1: Método button1_action
    String oldString = (String) this.helloText.getText();
    this.helloText.setText("Good Bye");
    String newString = (String) this.helloText.getText();
    return null;
  3. Haz click derecho a oldString, escoge New Watch, y haz click en OK. Haz lo mismo para newString. Haz click en la margen izquierda para configurar un breakpoint en la primera sentencia en el cuerpo del método.
  4. Escoge Run > Debug Main Project desde el menú principal.
  5. Cuando la página se muestre en el navegador web, haz click al botón.  Cuando el depurador se inicie en el método button1_action, haz click a la pestaña Watches en la ventana Debugger para ver el actual valor de newString y oldString.
  6. Escoge Run > Step Over desde el menú principal o haz click en el botón Step Over (Avanzar un paso) en la barra de herramientas.  Observa la pestaña Watches.  Avanza dos veces más en el código y observa la columna Value en la pestaña Watches.
  7. Explora las pestañas Local Variables (Variables locales) y Call Stack (Pila de llamadas).
  8. Escoge Run > Finish Debugger Session para cerrar la sesión del depurador.

Para más información

Resumen

  • Tu comienzas a construir una aplicación web creando un proyecto Visual Web Application.
  • Tu adicionas páginas escogiendo Web Pages > New > Page desde la ventana Projects.
  • Para diseñar una página, arrastra componentes desde la paleta dentro de la página en el diseñador visual.
  • Haz click al botón Run Main Project en la barra de herramientas principal para guardar, construir, desplegar y ejecutar la aplicación.
  • Usa el editor Page Navigation para especificar la navegación de las páginas.  Tu puedes también adicionar un componente Link a una página y configurar el valor de su propiedad url.
  • Suelta objetos Validadores y Conversores dentro de un componente para especificar su formato y reglas de validación. 
  • Usa componentes Message y Message Group para desplegar mensajes de error en tiempo de ejecución.
  • Usa propiedades en las clases RequestBean1, SessionBean1, y ApplicationBean1 para almacenar y pasar valores de una página a otra.
  • Para crear un objeto proveedor de datos y su asociado objeto rowset para una tabla de base de datos, arrastra una tabla desde la sección Databases de la ventana Runtime sobre la página o uno de sus componentes.
  • Usa la acción de menú Bind to Data para enlazar componentes a campos proveedores de datos y para enlazar componentes a propiedades del bean.
  • Abre un Query Editor en un rowset para modificar la sentencia query que es usada para llenar el objeto rowset.
  • Usa el depurador, el monitor HTTP, el log del servidor y componentes Message Group para diagnosticar problemas en tiempo de ejecución.


Esta página fue modificada:  Marzo 28, 2007


Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by