Curso de Spring Boot | Cargar JSP (esta un poco deprecated…)

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.

Curso de Spring Boot | Cargar JSP (esta un poco deprecated...) 1

Ejercicio Fútbol

Curso de Spring Boot | Cargar JSP (esta un poco deprecated...) 2
Curso de Spring Boot | Cargar JSP (esta un poco deprecated...) 3
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

Curso de Spring Boot | Cargar JSP (esta un poco deprecated...) 4

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

Curso de Spring Boot | Cargar JSP (esta un poco deprecated...) 5
Curso de Spring Boot | Cargar JSP (esta un poco deprecated...) 6
Curso de Spring Boot | Cargar JSP (esta un poco deprecated...) 7

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:

Ejercicio Foro

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.