Spring MVC Spring MVC Anotaciones (II)
|
|
|
- Manuel Paz Maldonado
- hace 7 años
- Vistas:
Transcripción
1 En el articulo anterior hemos configurado Spring MVC para cargar un ejemplo de Lista y Formulario.Ahora bien no hemos usado para nada el sistema de anotaciones de Spring. En este articulo cubriremos ese hueco. Lo primero que vamos a hacer es añadir un ViewResolver a nuestro fichero application-context.xml. <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolv er"> <property name="prefix" value="/web-inf/jsp/" /> <property name="suffix" value=".jsp" /> </bean> Se trata de un bean sencillo que parametriza la URL de las distintas vistas que cargamos. A partir de este momento nuestros controladores podran devolver algo como lo siguiente. return new ModelAndView("Lista"); Spring MVC A partir de Spring 2.5 se permite el uso de un sistema de anotaciones que simplifica la forma de trabajar. Para usar este sistema deberemos en primer lugar añadir una nueva dependencia a nuestro pom.xml. <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>3.2.4.release</version> </dependency> Esta dependencia nos permitirá modidificar el fichero application-context.xml y añadir una
2 etiqueta <context:component-scan base-package="com.arquitecturajava"/> Esta etiqueta se encarga de decirle a Spring en que packages debe buscar clases anotadas para su registro. En nuestro caso en com.arquitecturajava.realizada esta operación creamos una clase PersonaController dentro del package. Vamos a ver su código fuente : package com.arquitecturajava; import org.springframework.stereotype.controller; import public class PersonaController public String Lista() { return public String Formulario() { return "Formulario";
3 Como podemos observar hemos evolucionado nuestro ejemplo y en vez de tener varios comandos. Disponemos de un controlador que agrupa un conjunto de acciones. Vamos a explicar para que sirven las anotaciones que hemos Anotación que registra el controlador para Spring Anotación que se encarga de relacionar un método con una petición http. El uso de anotaciones no implica que unicamente tengamos un único controlador sino que nos permite agrupar un conjunto de urls que esten asociadas a nivel de negocio en un controlador especifico. La aplicación soportará n controladores.
4 Spring MVC y el Modelo Por ahora lo único que hemos hecho es construir el controlador.ahora bien el controlador suele enviar datos a la vista a traves de un modelo. Vamos a modificar PersonaController para que tenga una lista de Personas y nos las envie a Lista.jsp. El primer paso será añadir la clase Persona. package com.arquitecturajava; public class Persona { private String nombre; private String apellidos; public Persona(String nombre, String apellidos) { super(); this.nombre = nombre; this.apellidos = apellidos; //omitimos equals y hashcode eclipse
5 public String getnombre() { return nombre; public void setnombre(string nombre) { this.nombre = nombre; public String getapellidos() { return apellidos; public void setapellidos(string apellidos) { this.apellidos = apellidos; Realizada esta operación el siguiente paso será modificar el controlador para que genere una lista de Personas. package com.arquitecturajava; import java.util.arraylist; import java.util.list; import org.springframework.stereotype.controller; import org.springframework.ui.model; import public class PersonaController public String Lista(Model modelo) {
6 List<Persona> milista= new ArrayList<Persona>(); Persona persona1= new Persona("pedro","perez"); Persona persona2=new Persona ("maria","gonzalez"); milista.add(persona1); milista.add(persona2); modelo.addattribute("listapersonas",milista); return public String Formulario() { return "Formulario"; Como podemos observar ahora el método lista soporta un objeto de tipo Model.Es en esto objeto en el cual nosotros añadimos la lista. Realizado este paso nos quedará modificar la pagina JSP para que nos muestre una lista utilizando JSTL. Para ello antes deberemos añadir la dependencia a Maven. <dependency> <groupid>jstl</groupid> <artifactid>jstl</artifactid> <version>1.2</version> </dependency> Finalmente mostramos la página JSP que se encarga de mostrar la lista de personas. <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%>
7 taglib uri=" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>lista de Personas</title> </head> <body> <ul> <c:foreach items="${listapersonas" var="persona"> <li>${persona.nombre, ${persona.apellidos</li> </c:foreach> </ul> <a href="formulario">ir a formulario</a> </body> </html> Para finalizar cargamos la página en un navegador y nos mostrará la lista. Ya tenemos un ejemplo sencillo con anotaciones y Spring MVC funcionando
Spring MVC Configuración (I)
Debido a la explosión de las aplicaciones móviles cada día nos encontramos con una mayor necesidad de utilizar frameworks web que generen paginas HTML sencillas de tal forma que luego puedan decorarse
Práctica No. 6. Manejo de Eventos con Javascript
Práctica No. 6. Manejo de Eventos con Javascript Preparación del Entorno Descargar de la página web http://academicos.azc.uam.mx/jfg/pags/tarea_taller_web.html los archivos del Servidor Apache Tomcat Instalar,
Spring MVC. Desarrollo de Aplicaciones Empresariales
Spring MVC Desarrollo de Aplicaciones Empresariales 2014-1 Spring MVC Spring MVC Es una parte de Spring que nos facilita la implementación de la vista y el controlador de una aplicación, y la integración
Introducción a JSF con NetBeans
Introducción a JSF con NetBeans Créditos Yann Arthur Nicolas [email protected] www.merlinsource.com Objetivo Crear una primera aplicacion con JSF utilizando los tags para JSP y un ManagedBean, entender
Experto Universitario Java Enterprise Spring
Spring Sesión 3: Spring MVC Indice Procesamiento de una petición Configuración básica Caso 1: petición sin entrada de datos Caso 2: petición con datos de entrada y validación 2 Procesamiento de una petición
Java 8 FlatMap y Streams
El uso de Java 8 FlatMap es algo que en muchas ocasiones cuesta entender. La programación funcional en Java 8 esta empezando y para la mayor parte de la gente es algo muy nuevo. Vamos a crear un ejemplo
Práctica No. 1. Instalación del Servidor y Primer Página
Práctica No. 1. Instalación del Servidor y Primer Página Descarga del Servidor Web Apache Tomcat Es necesario contar con un servidor web para poder ejecutar las aplicaciones web, en este curso se trabajará
Spring y Confianza. Uso de Spring Properties y encriptación
El uso de Spring Properties es muy común cuando trabajamos con Spring Framework. Sin embargo hay situaciones en las cuales el manejo de propiedades puede tener implicaciones no deseadas. Uno de los casos
Spring Boot. Qué es Spring Boot?
Spring Boot es una de las tecnologías dentro del mundo de Spring de las que más se esta hablando últimamente. Qué es y como funciona Spring Boot?. Para entender el concepto primero debemos reflexionar
Laboratorio. Desplegando listas.
Laboratorio. Desplegando listas. Objetivo. Realizar una aplicación que permita desplegar una lista de elementos, en donde esos elementos pueden llegar a ser listas de elementos. Actividades a realizar.
Arquitectura Java Web. Ing. Juan Zevallos Valle
Arquitectura Java Web Ing. Juan Zevallos Valle 1 Objetivos Al final de la sesión usted debe ser capaz de: Conocer el modelo MVC utilizado en JAVA. Crear la vista usando paginas JSP Crear Servlets para
Vamos a mostrar el código fuente de la clase Persona y el del Servlet que imprime una lista de personas :
Hoy en dia nos toca trabajar más y más con el formato JSON en el mundo Java. Hay situaciones en las que nuestro servidor de aplicaciones tiene soporte (JEE6) y otras muchas en las que no y nos tenemos
4. DESARROLLO WEB CON JAVA JSP & SERVLETS
4. DESARROLLO WEB CON JAVA JSP & SERVLETS La programación de aplicaciones web sobre la especificación de JSP y Servlets es un subconjunto de la plataforma Java EE. Existen muchas formas de estructurar
Ejercicio 3 Proyecto Intérprete Curso de Spring Framework
www.globalmentoring.com.mx Curso de Spring Framework Ejercicio 3 Proyecto Intérprete Objetivo del Ejercicio El objetivo del ejercicio del Proyecto Intérprete. Al finalizar deberemos observar la siguiente
PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project
PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project PASO 2: En categorías seleccionamos Java Web y en projects Web Application. PASO 3: En el siguiente paso debemos
Ejercicios de MVC en Spring
Índice 1 Configurar el proyecto para Spring MVC (0.5 puntos)...2 2 MVC sin procesamiento de datos de entrada (1 punto)... 3 3 MVC con procesamiento de datos de entrada (1 punto)... 3 4 Taglibs de Spring
Java Optional ifpresent y como utilizarlo
Hoy vamos a hablar de Java Optional ifpresent. Cuando trabajamos con el tipo Optional conseguimos mejoras a la hora de trabajar con valores nulos. Veamos un ejemplo sencillo imaginemos que tenemos una
Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ]
Agosto 09 Un primer JSP Guía rápida [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Un Primer JSP Guía rápida Este documento te guiará por los primeros pasos para desarrollar
Spring Security (I) configuracion
Quizas una de las partes mas utilizadas y que mas dudas genera en Spring Framework es el framework Spring Security ya que a veces parece que es inmenso y muchas personas no son expertas en seguridad. Vamos
Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE
Java EE Ejercicio 4 EJB Sesión Sistema SGA Objetivo del Ejercicio El objetivo del ejercicio es agregar un EJB de Sesión a nuestro proyecto SGA (Sistema de Gestión de Alumnos), el cual desarrollaremos a
Vamos a ver un ejemplo y profundizar un poco en su funcionamiento. Para ello vamos a definir las dependencias del proyecto vía Maven:
Usar la anotacion @GeneratedValue con JPA es algo bastante habitual ya que existen muchas tablas cuyas claves primarias preferimos que sean autoincrementales. Así pues solemos configurar las entidades
Bloque 3: Parte servidora (backend)
DISEÑO DE APLICACIONES WEB Bloque 3: Parte servidora (backend) TEMA 3.2: APLICACIONES WEB CON SPRING MVC Y THYMELEAF Jesús Montes [email protected] Disclaimer Este material está basado en un material original
Utilizando un JPA Stream con JPA 2.2
El concepto de JPA Stream es un concepto relativamente nuevo y viene con JPA 2.2 es decir no todo el mundo lo tiene disponible en su servidor de aplicaciones. Como su nombre indica permite devolver un
Guía N 12 Tema: Introducción a JSF 2
Guía N 12 Tema: Introducción a JSF 2 Facultad: Ingeniería Escuela: Computación Asignatura: Java Avanzado I. OBJETIVOS 1. Que el alumno comprenda el uso del Framework Java Server Faces (JSF) 2. Que el alumno
WSDL (Web Service Defini/on Language)
WSDL WSDL (Web Service Defini/on Language) Autodescripción del Servicio Web h"p://www.w3.org/tr/wsdl Lenguaje para la descripción estándar de un Servicio Web. Tecnología XML que estandariza la representación
Introducción a MVC en Spring
Índice 1 Procesamiento de una petición en Spring MVC. 2 2 Configuración básica.3 3 Caso 1: petición sin procesamiento de datos de entrada. 4 3.1 Definir el controller y asociarlo con una URL5 3.2 Leer
Entiendo los métodos de Java equals y hashcode
Todos los días cuando programamos usamos objetos y en muchas ocasiones necesitamos comparar unos con otros. Para ello en muchas ocasiones usamos los métodos de de Java equals y hashcode. Estos métodos
Gobierno de Santa Fe. Ministerio de Gobierno y Reforma del Estado. Secretaría de Tecnologías para la Gestión IDESF. Manual de uso para desarrolladores
Gobierno de Santa Fe Ministerio de Gobierno y Reforma del Estado Secretaría de Tecnologías para la Gestión IDESF Manual de uso para desarrolladores Módulo de Ubicación Fecha de creación: 16/01/2017 Fecha
07 Java EE Tarea 7. Laboratorio de proyectos de tecnologías de la información III Prof. Emmanuel Oropeza Gonzalez
Instituto Politécnico Nacional Centro de Estudios Científicos y Tecnológicos 9 Laboratorio de proyectos de tecnologías de la información III Prof. Emmanuel Oropeza Gonzalez 07 Java EE Tarea 7 http://coatl.cecyt9.ipn.mx/eoropeza/home.html
Java Herencia vs Interfaces
Java Herencia vs Interfaces es una de las comparaciones más típicas cuando uno empieza a programar en Java. Siempre se generan dudas de cuando usar cada una de ellas ya que su comportamiento es similar.
Ahora bien puede estar el fichero persistence.xml en algún otro sitio?
Antes de ayer Carlos Oliva un lector de mi blog me preguntó si habría forma de configurar de una manera mas flexible el fichero persistence.xml. Me pareció una pregunta interesante ya que aunque muchas
Java EE JavaServer Pages (JSP)
Java EE JavaServer Pages (JSP) Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo
Spring. Sesión 5: Spring MVC (II) Validación e internacionalización
Spring Sesión 5: Spring MVC (II) Validación e internacionalización 1 Indice Validación Validación en Spring 2.x Validación en Spring 3 (JSR303) Restricciones predefinidas Validación de restricciones con
Ejercicios de Acceso a datos en Spring
Ejercicios de Acceso a datos en Spring Índice 1 Uso de JDBC en Spring (1 punto)...2 2 Transaccionalidad declarativa (1 punto)... 2 3 Uso de JPA en Spring (1 punto)...4 Continuaremos en esta sesión con
Java Constructores por defecto. Java Constructores this() y super()
En Java creamos objetos todos los días y para ellos usamos constructores. Todos estamos muy habituados a programarlos pero siempre hay algunos bordes que se nos escapan, vamos a revisarlos. Supongamos
Uso de Java Generics (I)
Uno de los temas que mas quebraderos de cabeza da a los desarrolladores es la construcción Java Generics o simplemente clases Genéricas.Vamos a escribir algunos artículos hablando de este tema.para empezar
Requisitos. Universidad ORT Arquitectura de Software
Requisitos Java Development Kit (JDK) 1.5 o superior NetBeans IDE 6.5 o superior JBoss Application Server 4.2.x o 5.x.x Variable de entorno JAVA_HOME apuntando al directorio de instalación de la JDK 1
Qué es un Java Maven Artifact?
El concepto de Maven Artifact es uno de los conceptos que más cuesta entender cuando uno trabaja con Maven. Qué es un Maven Artifact?. Explicarlo a veces no es sencillo. Pero si hablamos de programación
Quickstart-Webapps-Spring
Alumna: Keren Monge Cid Materia: Web Application Development Maestro: Alejandro S. Álvarez Cifuentes Grupo: 3CM2 3er Departamental Quickstart-Webapps-Spring Objetivo Desarrollar una aplicación web utilizando
Struts. Sesión 2: La vista en Struts. ActionForms y taglibs propias. Especialista Universitario Java Enterprise
Sesión 2: La vista en. ActionForms y taglibs propias Indice ActionForms. Ciclo de vida Usar ActionForms Las taglibs de. HTML y HTML-EL ActionForms Normalmente la acción toma los parámetros directamente
Práctica No. 5. Estructuras con Memoria Dinámica
Práctica No. 5. Estructuras con Memoria Dinámica Comenzar creando un nuevo proyecto tipo Java llamada Practica05, crear también la clase principal. Se cambiará el nombre del paquete por defecto a uam.pvoe.estructuras.principal,
Tutorial 4. Aplicaciones Web con NetBeans 5.0
Tutorial 4 Aplicaciones Web con NetBeans 5.0 Creación de un Proyecto Para crear un programa de consola en Java utilizando NetBeans 5.0 lo primero que hay que hacer es crear un proyecto. Un proyecto nos
Aplicaciones Web con Servlets y JSP (II)
Aplicaciones Web con Servlets y JSP (II) Jesús Arias Fisteus Aplicaciones Web (2017/18) Aplicaciones Web (2017/18) Aplicaciones Web con Servlets y JSP (II) 1 Parte I Java Server Pages (JSP) Aplicaciones
Aplicaciones Web con Servlets y JSP (II)
Aplicaciones Web con Servlets y JSP (II) Jesús Arias Fisteus Computación Web (2016/17) Computación Web (2016/17) Aplicaciones Web con Servlets y JSP (II) 1 Parte I Java Server Pages (JSP) Computación Web
Ejercicios de acceso remoto y pruebas
Ejercicios de acceso remoto y pruebas Índice 1 Acceso remoto con HttpInvoker (1 punto)...2 2 Pruebas de la capa DAO (0.5 puntos)... 3 3 Pruebas de la capa BO con y sin objetos mock (1 punto)... 4 4 Pruebas
Aplicaciones Web (Curso 2015/2016)
Aplicaciones Web con Servlets y JSP (II) Aplicaciones Web (Curso 2015/2016) Jesús Arias Fisteus // [email protected] Aplicaciones Web con Servlets y JSP (II) p. 1 Java Server Pages (JSP) Aplicaciones Web
Conexión de Mysql con NetBeans
Alumna: Keren Monge Cid Materia: Web Application Development Maestro: Alejandro S. Álvarez Cifuentes Grupo: 3CM2 2do Departamental Conexión de Mysql con NetBeans Objetivo Realizar un programa que realice
INTERFACE LIST. CLASE LINKEDLIST DEL API JAVA. EJERCICIO RESUELTO Y DIFERENCIAS ENTRE ARRAYLIST Y LINKEDLIST (CU00921C)
APRENDERAPROGRAMAR.COM INTERFACE LIST. CLASE LINKEDLIST DEL API JAVA. EJERCICIO RESUELTO Y DIFERENCIAS ENTRE ARRAYLIST Y LINKEDLIST (CU00921C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Primeros pasos con JavaServer Faces usando Eclipse
Primeros pasos con JavaServer Faces usando Eclipse Este tutorial ayuda a dar los primeros pasos con el absolutamente nuevo framework JavaServer Faces (JSF). Una aplicación de ejemplo (una biblioteca) será
Elementos sintácticos de una JSP.
1 JSP's Una JSP es un documento de texto parecido a HTML que describe como procesar una petición para crear una respuesta. Permiten separar la generación de interfaz de usuario (HTML) de la lógica de negocio.
Ejercicio 2 Hola Mundo con Spring Framework Curso de Spring Framework
www.globalmentoring.com.mx Curso de Spring Framework Ejercicio 2 Hola Mundo con Spring Framework Objetivo del Ejercicio El objetivo del ejercicio es configurar un proyecto HolaMundo con Spring Framework.
Struts. Sesión 1. Introducción a Struts: el controlador y las acciones. Especialista Universitario Java Enterprise
Struts Sesión 1. Introducción a Struts: el controlador y las acciones 2010-2011 Depto. Ciencia de la Computación e IA Indice Introducción a Struts y a MVC Instalación de Struts El ciclo de control en Struts
JAV JA A V S A C S R C I R P I T
JAVASCRIPT Introducción Introducción JavaScript es un lenguaje de programación que se utiliza principalmente para crear paginas web dinámicas. i Una pagina web dinámica incorpora efectos en el texto, animaciones,
EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B)
APRENDERAPROGRAMAR.COM EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha
Introducción a los servicios web 2012 Marcelino Rodríguez Suárez http://www.marce.com Un servicio web publica su descripción en un documento XML en
Introducción a los servicios web 2012 Marcelino Rodríguez Suárez http://www.marce.com Un servicio web publica su descripción en un documento XML en lenguaje WSDL. De esta forma es conocido y utilizado
Diseño de Aplicaciones Web Trabajando con Estilos en WebRatio
2011 Diseño de Aplicaciones Web Trabajando con Estilos en WebRatio Guía rápida para aplicar diferentes estilos a los objetos utilizados en el desarrollo de un Proyecto Web con WebRatio. Grupo 2 Décima
Curso JAVA EE 7 2016
Curso JAVA EE 7 2016 Curso de Java EE 7 PC CARRIER 29 de marzo de 2016 Autor: Marc Revenga Esquinas Curso JAVA EE 7 2016 Curso de Java EE 7 Clase 1. Aplicaciones web Java EE. Configuración del servidor
INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)
APRENDERAPROGRAMAR.COM INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Capacitación Tecnológica Científica para Bolivia. Programación Orientada a Objetos en Java
Catecbol Capacitación Tecnológica Científica para Bolivia www.catecbol.com facebook.com/catecbol @catecbol [email protected] Programación Orientada a Objetos en Java Saúl Medrano Estados Unidos La unión
Bloque3: Parte servidora (backend)
DISEÑO DE APLICACIONES WEB Bloque3: Parte servidora (backend) TEMA 3.5: SERVICIOS REST CON SPRING Jesús Montes [email protected] Disclaimer Este material está basado en un material original de: Boni García
Java Generic Repository y JPA
El concepto de Java Generic Repository es muy habitual cuanto trabajamos con tecnologías de persistencia. El concepto de Repository como clase que se encarga de gestionar todas las operaciones de persistencia
REQUEST EN PHP. DIFERENCIAS Y VENTAJAS E INCONVENIENTES ENTRE GET, POST Y REQUEST. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00835B)
APRENDERAPROGRAMAR.COM REQUEST EN PHP. DIFERENCIAS Y VENTAJAS E INCONVENIENTES ENTRE GET, POST Y REQUEST. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00835B) Sección: Cursos Categoría: Tutorial básico del programador
Lógica en páginas JSP (I)
JSP (II) Mario Muñoz Organero & Norberto Fernández* Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m.es/berto (*) Agradecimientos a Florina Almenárez en cuyo material
Validación e internacionalización con Spring MVC
Validación e internacionalización con Spring MVC Índice 1 Validación en Spring. 2 1.1 JSR 303 - Bean Validation2 1.2 Validación en Spring MVC. 3 2 Internacionalización y formateo de datos5 2.1 Internacionalización
Java Mockito y los Mock Object
Java Mockito es uno de los frameworks de Mock más utilizados en la plataforma Java. Esto es debido a la gran facilidad de uso que tiene. Vamos a intentar explicar el concepto de Mock y como funciona Java
Qué ofrece Autentia?
Qué ofrece Autentia? Somos su empresa de arquitectura y soporte a desarrollo Java/.Net En cualquier empresa mediana o grande donde exista un departamento de desarrollo informático encontramos un difícil
FORMULARIOS EN HTML. OPCIONES. CASILLAS DE VERIFICACIÓN CHECKBOX. BOTONES DE RADIO. LISTAS DE OPCIONES SELECT, OPTGROUP, OPTION.
APRENDERAPROGRAMAR.COM FORMULARIOS EN HTML. OPCIONES. CASILLAS DE VERIFICACIÓN CHECKBOX. BOTONES DE RADIO. LISTAS DE OPCIONES SELECT, OPTGROUP, OPTION. (CU00723B) Sección: Cursos Categoría: Tutorial básico
