在Ajax响应上返回spring mvc Model

时间:2017-05-07 09:42:30

标签: spring-mvc

我有一个返回模型对象的控制器,如下所示 model.addAttribute(“list”,list);

当我点击一个按钮时,会发生ajax调用,然后它会进入控制器执行所有操作并返回。但我不知道如何在我的jsp上访问ajax响应中的这个模型对象。当我使用alert成功ajax响应时,我只是看到一种html类型的页面。

请给我一些实例或参考来实现这个

提前致谢

请找到我的示例代码段

Controller.java

pwd | xclip -r # copied without new line
echo "foo" | xclip -r # copied without new line
ps | xclip -r # copied without the last new line!

我的JSP

点击按钮,进行以下ajax调用

@RequestMapping(value='/ajax' value="POST")   
 Public @ResponseBody String displayDropdown(MyForm myform,Model model) {  
 //logic to fetch details from DB 
 List<String> list = fetchFromDB(); 
 model.addAttribute("list" list);  
 return "ajaxResponse";  
}

我想从这个ajax响应中获取我的模型并在我的jsp中使用它。

3 个答案:

答案 0 :(得分:0)

我不确定,但是从JSP中可以使用${attribute_name}访问所有模型属性变量。在您的情况下,它是${list}

答案 1 :(得分:0)

也许你可以使用

<div id="errorAlert" class="alert col-md-6 col-md-offset-3 fadeAlert" ng-show="itemExistsAlert">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<p>{{alertMessage}}</p>
</div>

答案 2 :(得分:0)

是您可以轻松地从控制器获取模型数据,只需

 @RequestMapping(value='/ajax' value="POST")   
 Public String displayDropdown(MyForm myform,Model model) {  
 //logic to fetch details from DB 
 List<String> list = fetchFromDB(); 
 model.addAttribute("list" list);  
 return "yourjsppage";  
 }


 $.ajax {  
 url:'/ajax',  
 type:'POST',   
 data: $("#myform").serialize();   
 success:function(data) {   
 $("#page-wrapper").html( data );      
 }    
 }

page-wrapper是jsp页面中的内容div。这将返回包括您的模型在内的所有jsp页面。在这种情况下,当您希望(部分呈现)不想刷新整个页面而是定位特定页面时,它也很有用。