Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Debemos definir en el pom.xml que el empaquetado de la aplicación será war, puesto que es una aplicación web.
pom.xml
<packaging>war</packaging>
También en el pom.xml debemos cargar las dependencias para usar JSTL
<!-- Para Usar JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Para Usar JSTL con Spring -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
./src/main/webapp/WEB-INF/jsp/consulta.jsp
Los ficheros JSP serán almacenados en la ruta:
./src/main/webapp/WEB-INF/jsp/consulta.jsp
Modificaremos el application properties para que use lo que hay en esa ruta:
./src/main/resources/application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
Enrutamiento automático
@Configuration
@EnableWebMvc
public class WebConfiguration implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
// Obtiene el nombre de la vista en base a la url.
// Ejemplo: /view/cosas -> /webapp/WEB-INF/cosas.jsp
registry.addViewController("/view/**");
}
}
Ejercicios
Ejercicio invitados
Hacer una página web para una lista de invitados con 4 secciones. Una para consultar los invitados, otra para dar de alta un nuevo invitado y otra para darlo de baja.La tabla que usaremos tendrá dos campos: nombre (VARCHAR) e ID (INT, AUTOINCREMENT, PK).
Cada uno de los siguientes pantallazos representa una página diferente.
Ejercicio Fútbol


Necesitaremos añadir este código al repository
@Query("SELECT e FROM Equipo e WHERE e.equipo_cod=:id")
Equipo findEquipoByEquipoCod(@Param("id")int id);
Ejercicio hospital
Para evitar que en spring la fecha se guarde correctamente sin poner un día de menos:
SimpleDateFormar fADate = new SimpleDateFormat("yyyy-MM-dd");
fADate.setTimeZone(TimeZone.getTimeZone("PST"));
Ejercicio listado libros
Ejercicio mensajería
Para acceder a la sesión desde el controlador:
@RequestMapping(path = "/createMensajes", method = RequestMethod.GET)
public ModelAndView createMensaje(@ModelAttribute("mensaje")String mensaje,@ModelAttribute("ids[]")String ids[],HttpServletRequest request,ModelMap model) {
HttpSession session = request.getSession();
Enviar y recoger un array de datos al servidor utilizando Spring Boot
<c:forEach var="usuario" items="${usuarios}" varStatus="status">
<li><input name="ids[${status.index}]" type="checkbox" value="${usuario.id}">
<c:out value="${usuario.nombre}" /></li>
</c:forEach>
Arrays.stream(mensaje.getIds()).filter(id -> id!=null).forEach(id->{
//El código que procesa la petición
});
@Entity
public class Mensaje {
...
@Transient
Integer ids[];
request.getParameterValues("ids")
Recoger un array de datos del servidor utilizando SpringBoot
También hubiera sido posible recoger los datos dándoles a todas las checkboxes el mismo name y utilizando en el controlador el método: