J'ai créé une webapp à l'aide de Spring MVC et j'ai fait les opérations CRUD et maintenant bloqué avec la page de recherche.

J'ai déjà codé ci-dessous jsp et le contrôleur.

Corps de page JSP

<div align="center">
        <h1>Search Items</h1>


        <form action="search_1" method="get" modelAttribute="search">
        <table>
        <tr>
            <td>Category:</td>
            <td>
          <select  type="text" name="category_id">
            <option value="Book">Book</option>
            <option value="Audio Books">Audio Books</option>
            <option value="Videos">Videos</option>
            <option value="Music">Music</option>
          </select>
             </td>
        </tr>

        <tr>
            <td>Publisher ID:</td>
            <td>
          <select  type="text" name="publisher_id">
            <option value="Harper Collins">Harper Collins</option>
            <option value="Penguins">Penguins</option>
            <option value="Franciscan Media">Franciscan Media</option>
            <option value="Orbis">Orbis</option>
          </select>
             </td>
        </tr>

        <tr>
            <td>Price Range:</td>
            <td>Min: <input type="text" name="price_1"/> Max: 
            <input type="text" name="price_2"/></td>
        </tr>


        <tr>
                <td colspan="2" align="center"><input type="submit" value="search"></td>
            </tr>

        </table>


        </form>


    </div>

Manette

 @RequestMapping(value ="/search_1",method = RequestMethod.GET)
    public ModelAndView search_1(HttpServletRequest request, HttpServletResponse response) {

        String category_id = request.getParameter("category_id");
        String publisher_id = request.getParameter("publisher_id");
        int price = Integer.parseInt(request.getParameter("price"));



        ModelAndView model = new ModelAndView();
        model.setViewName("searchResult");


        return model;
    }

Élément bean

package com.jwt.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "items")
public class Items implements Serializable {

    private static final long serialVersionUID = -3465813074586302847L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    @Column
    private String ISBN;

    @Column
    private String title;

    @Column
    private String category_id;

    @Column
    private String Author;


    @Column
    private String publisher_id;

    @Column
    private float price;

    @Column
    private int stock;

    @Column
    private int photo_id;



    public int getid() {
        return id;
    }

    public void setid(int id) {
        this.id = id;

    }

    public String getISBN() {
        return ISBN;
    }

    public void setISBN(String ISBN) {
        this.ISBN = ISBN;
    }

    public String gettitle() {
        return title;
    }

    public void settitle(String title) {
        this.title = title;
    }

    public String getcategory_id() {
        return category_id;
    }

    public void setcategory_id( String category_id) {
        this.category_id = category_id;
    }

    public String getAuthor() {
        return Author;
    }

    public void setAuthor(String Author) {
        this.Author = Author;
    }

  public String getpublisher_id() {
        return publisher_id;
    }

    public void setpublisher_id(String publisher_id) {
        this.publisher_id = publisher_id;
    }


     public float getprice() {
        return price;
    }

    public void setprice(float price) {
        this.price = price;
    }

     public int getstock() {
        return stock;
    }

    public void setstock(int stock) {
        this.stock = stock;
    }


     public int getphoto_id() {
        return photo_id;
    }

    public void setphoto_id(int photo_id) {
        this.photo_id = photo_id;
    }
}

La recherche doit être effectuée selon les critères de recherche sur la page JSP. La vue des résultats peut être sur la même page. Ça n'a vraiment pas d'importance,

0
Nalaka Sapumal 4 nov. 2019 à 11:45

1 réponse

Je ne sais pas pourquoi vous êtes confus, mais voyons si je peux vous aider.

Dans votre contrôleur, vous devez extraire tous les critères correctement puis récupérer la liste des éléments utilisant ces critères dans votre base de données. Créez une méthode dans une classe de service qui prend ces critères en paramètre et renvoie une liste d'éléments. Attaché cet élément dans le modèle et affiché dans la page "searchResult.jsp".

Voici une méthode de contrôleur approximative qui devrait gérer votre recherche

    @RequestMapping(value = "/search_1", method = RequestMethod.GET)
    public ModelAndView search(HttpServletRequest request) {

        String categoryId = request.getParameter("category_id");
        String publisherId = request.getParameter("publisher_id");
        int minPrice = Integer.parseInt(request.getParameter("price_1"));
        int maxPrice = Integer.parseInt(request.getParameter("price_2"));

        List<Item> items = someService.getItems(categoryId, publisherId, minPrice, maxPrice);

        ModelAndView model = new ModelAndView();
        model.addObject("items", items);
        model.setViewName("searchResult");

        return model;
    }
1
saifulislamplabon 4 nov. 2019 à 20:43