通过弹簧mvc加载框架/ iframe

时间:2012-12-20 18:31:03

标签: spring jsp spring-mvc iframe

我遇到一个问题,当用户按下页面顶部的提交按钮时,下面的框架/ iframe中会加载另一个jsp。我正在使用Spring MVC架构,jsp由控制器决定。我应该如何让控制器将jsp映射到iframe?对于之前的所有映射,我使用了@RequestMapping注释。

3 个答案:

答案 0 :(得分:1)

我会使用Javascript执行此操作,例如使用JQuery,您可以在表单上调用onSubmit甚至在iframe中加载响应(html内容)时执行ajax调用:

$('form').submit(function() {
    jQuery.ajax({
        type : 'POST',
        data : jQuery(this).serialize(),
        url : '/post_action',
        success : function(data, textStatus) {
            jQuery('#iframeId').contents().find('body').append('data');
        },
        error : function(XMLHttpRequest, textStatus, errorThrown) {
        }
    });
});

答案 1 :(得分:1)

只是使用这个东西 - $(“#iFrameId”)。attr(“src”,“controller.mth”);

这样从控制器返回的jsp将被加载到iframe中。

答案 2 :(得分:0)

使用Spring MVC,在scriptlet中使用request.getContextPath之后,ajax url工作了。

我的控制器在此更改后收到请求并返回jsp页面。在示例中将append('data')更改为append(data)后,jsp会显示在iframe中。请注意,删除了数据中的引号以使其正常工作。

function openPage() {
  jQuery.ajax({
     type : 'POST',
     data : jQuery(this).serialize(),
     url : '<%=request.getContextPath()%>/post_action',
     success : function(data, textStatus) {
     jQuery('#iframeId').contents().find('body').append(data);
     },
     error : function(XMLHttpRequest, textStatus, errorThrown) {
     }
  });
}