2015-04-18 2 views
0

Позвольте мне объяснить, что я делаю и чего я хочу достичь. У меня есть страница jsp, которая содержит два раскрывающихся списка вместе с кнопкой поиска и таблицей с четырьмя столбцами. Две таблицы данных столбцов такие же, как и выпадающие данные.Функция поиска в jsp dropdown spring MVC

Первоначально, когда загружаются jsp, эти выпадающие списки устанавливаются на ВСЕ, и по умолчанию все результаты отображаются в таблице jsp с одним сигналом запроса к БД.

Что я хочу, это когда выбранный элемент выбран в обоих выпадающих меню. Я хотел бы отобразить результаты, связанные с этим поиском в таблице.

Нужно ли мне запускать запрос для каждого поиска? потому что я уже получил общие данные в начале.

Любая помощь будет оценена по достоинству?

+0

зависит от количества строк. Какая максимальная сумма? – andybeli

+0

Вы имели в виду подсчет строк? это зависит, и в будущем он может расти. – rakeeee

+0

Вам не нужно запускать запрос БД для каждого поиска. Вместо этого вы можете удерживать значения в Pojo после извлечения значений из базы данных. Затем, когда вы входите в кнопку поиска, вы можете выполнять фильтрацию на этом pojo и возвращать обновленный объект tableObject к вашему представлению страница – Thomas

ответ

0

После того, как вы получите все данные из БД

  1. магазин значения в Pojo
  2. После того, как ваша выпадающий заполнена и нажать кнопку поиска
  3. Go для АЯКС вызова и передать ваши падение вниз выберите ваш контроллер
  4. Отфильтруйте новый объект ArrayList \ Object на основе вашего раскрывающегося списка выберите и обновите свой объект, который содержит значение, необходимое для заполнения вашей таблицы
  5. Заполните таблицу обновленным объектом после возврата в jsp.

Ajax код

$.ajax({ 
     url:'filterTableData.do', 
     cache:false, 
     type: 'POST', 
     dataType: 'text', 
     data: ({'dropdownValue1' : dropdownValue1 ,'dropdownValue2' : dropdownValue2 }), 
     error: function (res, textStatus, errorThrown) { 
       alert(' Error :' + errorThrown); 
     }, 
     success: function(res){      
       window.location.replace("jsptobedisplayed.do"); 
     } 
     }); 

Java код -

@RequestMapping("/filterTableData") 
@ResponseBody 
public String deleteProd(@RequestParam String dropdownValue1,@RequestParam String dropdownValue2){ 
----> your logic <--------} 

Alternate был как только вы нажмете поиск, а затем вернуться к Java и сделать фильтр на основе выпадающего значения и возврата обновленный объект таблицы и заполнить таблицу.