springboot.firststeps(lib)

libroControlador.java Catálogo de libros disponibles Catálogo de libros disponibles Contiene: y pertenece a los siguientes generos: Filtrar ID NOMBRE AÑO PUBLICACIÓN EDITORIAL Generos Borrar loginController.java @Controller public class LoginController { @Autowired UsuarioRepository usuarioRepository; @GetMapping("/") public String doInit(Model model){ model.addAttribute("modelUsuario", new UsuarioEntity()); return "login"; } @PostMapping("/autentica") public String doAutentica(@ModelAttribute("modelUsuario")UsuarioEntity usuario, Model model, HttpSession session){ UsuarioEntity usuarioAut = usuarioRepository.findByApellidoYContrasenya(usuario.getUsuariosurname(), usuario.getUsuariopassword()); if(usuarioAut==null){ model.addAttribute("error", "Error de autentificacion"); return "login"; }else{ session.setAttribute("user", usuarioAut); return "redirect:/libros/"; } } @GetMapping("/salir") public String doSalir(HttpSession session){ //session.removeAttribute("user"); session.invalidate(); return "redirect:/"; } } Vista libros.jsp Catálogo de libros disponibles Catálogo de libros disponibles Contiene: y pertenece a los siguientes generos: Filtrar ID NOMBRE AÑO PUBLICACIÓN EDITORIAL Generos Borrar libro.jsp libro libro Nombre: Año de publicación: Editorial: Géneros: Escritores: login.jsp Login Login Usuario: Contraseña: Enviar cabecera.jsp Cabecera Libros Editoriales Bienvenido, ( Salir ) ui(Filtro) package es.uma.taw.libroswebapp.ui; import es.uma.taw.libroswebapp.entity.GeneroEntity; import lombok.Data; import java.util.List; @Data public class Filtro { String cadena; List generosList; } Repos public interface LibroRepository extends JpaRepository { @Query("select l from LibroEntity l where l.libroname like concat('%',:cadena,'%')") public List findByCadena(@Param("cadena")String cadena); @Query("select l from LibroEntity l where l.usuarioid.usuarioid = :id ") public List findByUsuarioId(@Param("id")Integer id); @Query("select l from LibroEntity l join l.generoList g where (l.libroname like concat('%',:cadena,'%')) and (g in :generos)") public List findByCadenaYGeneros(@Param("cadena")String cadena, @Param("generos")List generos); }

Jun 23, 2025 - 23:10
 0
springboot.firststeps(lib)

libroControlador.java

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page import="es.uma.taw.libroswebapp.entity.LibroEntity" %>
<%@ page import="java.util.List" %>
<%@ page import="es.uma.taw.libroswebapp.entity.GeneroEntity" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Catálogo de libros disponibles


<%
    List lista = (List) request.getAttribute("libros");
%>




Catálogo de libros disponibles

Contiene: y pertenece a los siguientes generos:

Filtrar
<% for (LibroEntity libro: lista) { %> <% } %>
ID NOMBRE AÑO PUBLICACIÓN EDITORIAL Generos
<%= libro.getLibroid() %> <%= libro.getLibroname() %> <%= libro.getYearreleased() %> <%= libro.getEditorialid().getEditorialname() %> <% List generos = libro.getGeneroList(); for (int i = 0; i < generos.size(); i++) { out.print(generos.get(i).getGeneroname()); if (i < generos.size() - 1) out.print(", "); } %>
Borrar

loginController.java

@Controller
public class LoginController {

    @Autowired
    UsuarioRepository usuarioRepository;

    @GetMapping("/")
    public String doInit(Model model){
        model.addAttribute("modelUsuario", new UsuarioEntity());
        return "login";
    }

    @PostMapping("/autentica")
    public String doAutentica(@ModelAttribute("modelUsuario")UsuarioEntity usuario, Model model, HttpSession session){
        UsuarioEntity usuarioAut = usuarioRepository.findByApellidoYContrasenya(usuario.getUsuariosurname(), usuario.getUsuariopassword());
        if(usuarioAut==null){
            model.addAttribute("error", "Error de autentificacion");
            return "login";
        }else{
            session.setAttribute("user", usuarioAut);
            return "redirect:/libros/";
        }
    }

    @GetMapping("/salir")
    public String doSalir(HttpSession session){
        //session.removeAttribute("user");
        session.invalidate();
        return "redirect:/";
    }
}

Vista

libros.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page import="es.uma.taw.libroswebapp.entity.LibroEntity" %>
<%@ page import="java.util.List" %>
<%@ page import="es.uma.taw.libroswebapp.entity.GeneroEntity" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Catálogo de libros disponibles


<%
    List lista = (List) request.getAttribute("libros");
%>




Catálogo de libros disponibles

Contiene: y pertenece a los siguientes generos:

Filtrar
<% for (LibroEntity libro: lista) { %> <% } %>
ID NOMBRE AÑO PUBLICACIÓN EDITORIAL Generos
<%= libro.getLibroid() %> <%= libro.getLibroname() %> <%= libro.getYearreleased() %> <%= libro.getEditorialid().getEditorialname() %> <% List generos = libro.getGeneroList(); for (int i = 0; i < generos.size(); i++) { out.print(generos.get(i).getGeneroname()); if (i < generos.size() - 1) out.print(", "); } %>
Borrar

libro.jsp

<%@ page import="es.uma.taw.libroswebapp.entity.LibroEntity" %>
<%@ page import="es.uma.taw.libroswebapp.entity.EditorialEntity" %>
<%@ page import="java.util.List" %>
<%@ page import="es.uma.taw.libroswebapp.entity.GeneroEntity" %>
<%@ page import="es.uma.taw.libroswebapp.entity.EscritorEntity" %><%--
  Created by IntelliJ IDEA.
  User: guzman
  Date: 26/3/25
  Time: 11:40
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<%
  boolean esEditar = true;
  LibroEntity libro = (LibroEntity)request.getAttribute("libro");
  if (libro.getLibroid() == null) esEditar = false;
  List editoriales = (List) request.getAttribute("editoriales");
  List generos = (List) request.getAttribute("generos");
  List escritores = (List)request.getAttribute("escritores");
%>


  <%= (esEditar? "Edición del" : "Nuevo") %> libro


<%= (esEditar? "Editar" : "Nuevo") %> libro

Nombre: ">
Año de publicación: ">
Editorial:
Géneros: <% for (GeneroEntity genero: generos) { String seleccionado = ""; if (esEditar && libro.getGeneroList().contains(genero)) { seleccionado = "checked"; } %> name="generos" value="<%= genero.getGeneroid() %>"> <%= genero.getGeneroname() %> <% } %>
Escritores:

login.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Login

<%
    String error = (String) request.getAttribute("error");
%>

Login

<% if(error!=null){ %> <%=error%>

<% } %> Usuario:
Contraseña:
Enviar

cabecera.jsp

<%@ page import="es.uma.taw.libroswebapp.entity.UsuarioEntity" %>
<%@ page import="es.uma.taw.libroswebapp.entity.LibroEntity" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>



    Cabecera


<%
    UsuarioEntity user = (UsuarioEntity) session.getAttribute("user");
    List lista = (List) request.getAttribute("libros");
%>


Libros <%=lista.get(0).getLibroname()%> Editoriales Bienvenido, <%=user.getUsuariosurname()%> ( Salir )

ui(Filtro)

package es.uma.taw.libroswebapp.ui;

import es.uma.taw.libroswebapp.entity.GeneroEntity;
import lombok.Data;

import java.util.List;

@Data
public class Filtro {
    String cadena;
    List generosList;

}

Repos

public interface LibroRepository extends JpaRepository {

    @Query("select l from LibroEntity l where l.libroname like concat('%',:cadena,'%')")
    public List findByCadena(@Param("cadena")String cadena);

    @Query("select l from LibroEntity l where l.usuarioid.usuarioid = :id ")
    public List findByUsuarioId(@Param("id")Integer id);


    @Query("select l from LibroEntity l join l.generoList g where (l.libroname like concat('%',:cadena,'%')) and (g in :generos)")
    public List findByCadenaYGeneros(@Param("cadena")String cadena, @Param("generos")List generos);
}