¿Cómo enviar datos de una pagina JSP a un Servlet sin un form?

publicado por: Anonymous

Tengo un problema. No logro recibir un valor por GET en el Servlet, no se por qué.
Aquí el código JSP:

<html>

        <%
            List<String> listaDeCategorias = (List<String>) request.getAttribute("listaDeCategorias");
            String busquedaCategoria = (String)request.getAttribute("busquedaCategoria");

            for(String categoria : listaDeCategorias){
                if(categoria.equals( busquedaCategoria )){

        %>

        <option value="<%=categoria%>" selected><%=categoria%></option>
        <%} else {%>

        <option value="<%=categoria%>"><%=categoria%></option>
        <%}}%>
    </select>

    <input type="submit" value="Filtrar">

</form>

<br>

<%
    List<Libro> listaDeLibros = (List<Libro>) request.getAttribute("listaDeLibros");

    for(Libro libro : listaDeLibros){
%>
    <%=libro.getIsbn()%>
    <%=libro.getTitulo()%>
    <%=libro.getCategoria()%>


    <a href="BorrarController?isbn = <%=libro.getIsbn()%>" >Borrar</a>
    <a href="EditarLibroController?isbn = <%=libro.getIsbn()%>">Editar</a>
    <br>
<%}%>

<a href="index.jsp">Registrar otro libro</a>

En la parte de la etiqueta

<a href="BorrarController?isbn = <%=libro.getIsbn()%>" >Borrar</a>

Quiero mandar el código isbn del libro por la url al Servlet. El enlace me lleva al Servlet, pero el Servlet no lee el dato mandado por la url.
Código del Servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String isbn = request.getParameter("isbn");

    Libro libro = new Libro();
    libro.borrar(isbn);

    response.sendRedirect("MostrarLibrosController");

}

}

Agradezco sus aportes.

solución

El problema que estan formando URL con espacios y eso por defecto te agrega un %20% en la url y nunca va a llegar el parametro que deseas.

Cambia tus href por estos:

_x000D_

_x000D_

<a href="BorrarController?isbn=<%=libro.getIsbn()%>" >Borrar</a>_x000D_
<a href="EditarLibroController?isbn=<%=libro.getIsbn()%>">Editar</a>

_x000D_

_x000D_

_x000D_

Tambien debes de fijarte como esta configurado tu web.xml:

<url-pattern>/BorrarController</url-pattern> 

Y que el nombre del serlvlet sea el mismo que previamente configuraste en el xml:

@WebServlet("/BorrarController")
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *