Как построить страницу простого поиска с помощью Spring MVC? - PullRequest
0 голосов
/ 04 ноября 2019

Я создал webapp, используя Spring MVC, и я выполнил операции CRUD и теперь застрял на странице поиска.

Я уже кодировал ниже jsp и контроллер.

Тело страницы 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>

Контроллер

 @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;
    }

Элемент 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;
    }
}

Поиск должен выполняться в соответствии с критериями поискана странице JSP. Просмотр результатов может быть на той же странице. Это действительно не имеет значения,

1 Ответ

1 голос
/ 04 ноября 2019

Я не уверен, почему вы запутались, но давайте посмотрим, смогу ли я помочь.

В вашем контроллере вы должны правильно извлечь все критерии, а затем получить список элементов, используя эти критерии, из вашегобаза данных. Создайте метод в классе обслуживания, который принимает эти критерии в качестве параметра и возвращает список элементов. Прикрепил этот элемент в модели и отобразил на странице "searchResult.jsp".

Вот грубый метод контроллера, который должен обрабатывать ваш поиск

    @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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...