2015-12-21 3 views
0

Я использую шаблон Spring MVC ModelAndView в контроллере для отображения страницы. На странице у меня есть элемент выпадающего элемента и таблица. При выборе опции в раскрывающемся списке я передаю идентификатор элемента контроллеру и запрашиваю результаты для выбранного параметра. Я использую Hibernate для извлечения данных из db. Итак, результат в виде списка объектов. Я должен заполнить этот результат в таблице.Как передать список на страницу JSP без загрузки JSP

Следующий код отобразит JSP и передаст ссылку на список JSP. Я использую эту ссылку для заполнения параметров на странице.

Код:

List<String> users = new ArrayList<String>(); 
ObjectMapper objectmapper = new ObjectMapper(); 
String string = ""; 
ModelAndView model = new ModelAndView("xxxx"); 
containerList = mapper.writeValueAsString(users); 

List<Intermediate> list = getIntermediateList(); 
model.addObject("IntermediateList" , List); 
return model; 

JSP код:

<td>Intermediate</td> 
<td> 

<select class="form-control margin" id = "dpd" > 
<option value="0" selected>--Select--</option> 
<c:forEach var="list" items="${IntermediateList}"> 
<option label="${list.name}" value="${item.id}"></option> 
</c:forEach> 
</select> 
</td> 

На выбор из опции из выпадающего списка, он будет делать Ajax вызов и передать выбранный идентификатор метода контроллера:

Ajax код телефона:

$("#dpd").change(function(e){ 

var intermediate = $("#dpd").val(); 

var data = { 
Intermediate : intermediate 
}; 

$.ajax({ 
method : 'POST', 
url : 'intermediateUsers', 
data : data , 
success : function(result) { 
alert("Success"); 
} 
, 
error : function(result) { 
alert('An error occurred.'); 
} 
}); 

контроллер код для запроса списка:

@RequestMapping("/intermediateUsers") 
@ResponseBody 
public List<Users> intermediateUsers(@RequestParam(value = "intermediate" ,required = false) String intermediate) { 

List<Users> users = null; 

int selection = Integer.parseInt(intermediate); 

users = service.intermediateUsers(selection); 

return users; 
} 

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

ответ

0

Вы можете использовать что-то вроде этого

function showContacts(response){ 
     $("#tableid tbody tr").remove(); 
     $.each(response.contacts, function(i, contact) { 
      $("#tableid tbody").append(
        $('<tr>').append($('<td>').text(contact.name), 
            $('<td>').text(contact.phoneNumber), 
            $('<td>').text(contact.address) 
            )); 
     }); 
    } 
function loadContacts(){ 
    $.ajax({ 
     type: "GET", 
     url: "url/contacts", 
     success: function(response){ 
      showContacts(response); 
     } 
    }); 
} 
Смежные вопросы