Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
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
<form action="/libreria/Controller" method="get">
<table>
<tr>
<th>Id</th>
<th>Título</th>
<th>Precio</th>
<th>Opción</th>
</tr>
<c:forEach var="libro" items="${requestScope.libros}">
<tr id="fila${libro.id}">
<td><input type="text" name="identification" value="${libro.id}" disabled></td>
<td><input type="text" name="titulo" value="${libro.titulo}"></td>
<td><input type="text" name="precio" value="${libro.precio}"></td>
<td>
<button type="button" onClick="send('eliminar',${libro.id})">Eliminar</button>
<button type="button" onClick="send('modificar' ,${libro.id})">Modificar</button>
</td>
</tr>
</c:forEach>
<tr>
<td style="background-color: gray;"></td>
<td><input type="text" name="tituloAlta"></td>
<td><input type="text" name="precioAlta"></td>
<td><button>Agregar</button></td>
</tr>
</table>
<input type="hidden" name="action" value="alta">
<input type="hidden" name="titulo2">
<input type="hidden" name="precio2"> <input type="hidden" name="idNumber">
</form>
<script>
const send = (action, id) => {
const fila = document.querySelector('#fila' + id);
const titulo = fila.querySelector('[name=titulo]').value;
const precio = fila.querySelector('[name=precio]').value;
document.querySelector('[name=action]').value = action;
document.querySelector('[name=titulo2]').value = titulo;
document.querySelector('[name=precio2]').value = precio;
document.querySelector('[name=idNumber]').value = id;
document.querySelector("form").submit();
}
</script>
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: