如何在spring mvc 3 ajax调用中返回jsp页面

时间:2014-08-04 08:23:11

标签: ajax jsp spring-mvc

我有一个包含页眉,页脚,左侧面板和主要内容的主页面。我想点击左侧面板动态更改主要内容。为此,我使用ajax调用,ajax将调用控制器,控制器将返回jsp,我将替换主要内容。

但我面临的问题是,如果我使用的是纯粹的html编码,那么我正在获得正确的jsp,但是如果我使用spring形式则无法正常工作。

我是否需要在所有jsp中或仅在Dashboard jsp中声明taglib。

1)如果我在所有子jsp中声明taglib然后它不起作用我不声明然后表单:输入不渲染到html

2)我们可以在ajax调用中返回jsp以替换主内容,因为here它只能在ajax调用中使用@ResponseBody(JSON)。

3)我正在使用ajax调用,因为我不想重新加载我的所有页眉,页脚和左侧面板,因为它们将始终保持相同。

Ajax代码

<script type="text/javascript">
  $(".ldMainContent").click(function(){
    var actionName = this.id;
    actionName = "${pageContext.request.contextPath}/sadmin/forward/"+actionName;
         $.ajax({
            url:actionName,
            type:"POST",
            data:"URL",
            success:function(result){
            $("#mainContent").html(result);              
          }
       });  
   });

</script>

我在设计中使用bootstrap

1 个答案:

答案 0 :(得分:2)

可以使用jQuery的load方法加载内容。

代码将是

$(".ldMainContent").click(function(){
   var actionName = this.id;
   actionName = "${pageContext.request.contextPath}/sadmin/forward/"+actionName;
   $("#mainContent").load(actionName);  
})

在您的控制器中没有@ResponseBody它用于将对象作为JSON或XML返回。控制器应返回JSP页面的视图,该视图应仅包含mainContent内所需的内容。

  

我是否需要在所有jsp中或仅在Dashboard jsp中声明taglib。

是的,您必须声明使用标签的jsp文件的taglib。