0

我已将 jQuery 集成到 Spring MVC 应用程序中。我的 JSP 页面上有一个表单,我正在执行 ajax POST 以将表单发送到控制器:

$("#myform").submit(function() {
                    $.ajax({
                        type : 'POST',
                        url : '/MyApp/search/searchResults',
                        data : $(this).serialize(),
                        dataType: 'html',
                        success : function(data) {
                            $("#tabs-4").append(data);
                        }
                    });
                    return false;
                });

成功函数会将数据加载到新选项卡中。我发现data返回的是我的原始页面的 HTML(我从中提交)。相反,我希望能够解析从控制器返回的 ModelAndView 对象。例如:

${searchResults.searchStr}

data返回页面HTML是否正常?无论如何,我可以在成功函数中解析 ModelAndView 对象,然后将其传递给我的新选项卡 div 吗?

这是我的控制器代码:

@RequestMapping(value = "/searchResults", method = RequestMethod.POST)
public ModelAndView searchResults(
        @ModelAttribute(value = "search") SearchVO search,
        BindingResult result) {

    // Set the view and search object
    ModelAndView mv = new ModelAndView("newSearch");
    mv.addObject("searchResults", searchResults);

    return mv;
}

谢谢!

4

1 回答 1

0

是的,您可以将 html 内容从控制器返回到您的 ajax 函数。如果您有兴趣在 jsp 中使用该实例,则必须将其序列化为 json 并发送。使用 jquery 你可以在 jsp 上渲染它。例如,

//Controller
public @ResponseBody<Class_name> search(...){
     return searchResults;
}

//jsp

function renderResult(){
   $.ajax({
    url:'url',
    dataType:'json',
    ...
    ..
    success: function(data, status, xhr){
       $.each(data, function(k, v){
       $('#my_div').append(...k,v...);
}
}
});
}

查看您的要求,我建议您使用返回 html 本身的第一种方法,并且您返回的 jsp 页面可以使用 searchResults 呈现。

于 2012-12-04T05:47:14.960 回答