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