【问题标题】:How pass a List to JSP page without loading the JSP如何在不加载 JSP 的情况下将列表传递给 JSP 页面
【发布时间】:2015-12-21 12:57:10
【问题描述】:

我在控制器中使用 Spring MVC 框架ModelAndView 方法来显示页面。在页面上,我有一个元素下拉元素和表格。在下拉列表中选择一个选项时,我将元素的 Id 传递给控制器​​并查询所选选项的结果。我正在使用 Hibernate 从数据库中获取数据。因此,结果是对象列表的形式。我必须在表格中填充这个结果。

以下代码将显示一个 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 调用并将选定的 Id 传递给控制器​​方法:

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,但没有任何效果。

【问题讨论】:

    标签: java hibernate list jsp spring-mvc


    【解决方案1】:

    你可以使用这样的东西

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多