无法在spring ajax调用中将当前页面div内容替换为另一个页面div内容

时间:2014-11-07 05:11:32

标签: java jquery ajax spring-mvc

我是spring的新手。我的要求是在spring ajax调用中将当前页面内容替换为另一个页面内容。 以下是我的代码: a1.jsp

<script>
$(document).ready(function(){
    $("#my").click(function(){
        $.ajax({
            type : 'post',
            url : 'CheckAjax',
            success : function(data) {
                console.log("success");
                console.log(data);
                $("#result").empty();
                $("#result").html(data);

            },
            error : function() {
            console.log("fail");
            }
        });
    });

});
</script>
<div id="result">admin</div>
<input type="button" id="my"/>

ajaxcheck.jsp

<div id="result"><c:out value="${model}"/></div>

Spring Controller:

@RequestMapping(value="CheckAjax")
    @ResponseBody
    public ModelAndView myAjax(){
               logger.info("i am executing");
             return new ModelAndView("ajaxcheck","model","success");
    }

控制台显示      成功 Object {view:null,model:Object,empty:false,viewName:&#34; ajaxcheck&#34;,reference:true ...} empty:falsemodel:ObjectmodelMap:Objectreference:trueview:nullviewName:&#34; ajaxcheck&#34; proto :对象

我已经在我的struts2项目中实现了这一点。但是我很难在春天如何做到这一点?

任何帮助将不胜感激!!!

1 个答案:

答案 0 :(得分:0)

删除@ResponseBody有帮助,因为有一些预定义的返回值处理程序可以处理MVC控制器的返回类型

因此,当一个人返回Object org.springframework.web.method.support.HandlerMethodReturnValueHandler时,@ResponseBody界面就会通过识别而出现 适当的返回类型处理程序,然后将处理委托给适当的处理程序。

以下返回类型是Spring MVC 3.2.x及更高版本中支持的返回类型。

  • ModelAndView或模型或地图或视图
  • String or void
  • 使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#getDefaultReturnValueHandlers()
  • 注释的方法
  • HttpEntity或ResponseEntity或Callable或DeferredResult

这些都是按照以下方法定义的 {{1}}

这在http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann-return-types

中有记录