我遇到一个问题,当用户按下页面顶部的提交按钮时,另一个jsp会在下面的框架/iframe中加载。我使用Spring MVC架构,jsp由控制器决定。我应该如何使控制器映射jsp到iframe?对于之前的所有映射,我都使用了@RequestMapping注释。
我会这样做使用Javascript,例如与JQuery你可以做一个ajax调用时,onSubmit
甚至被调用在你的表单加载响应(html内容):
$('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) {
}
});
});
就用这个东西——$ (" # iFrameId")。attr("src"、"controller.mth");
这样从控制器返回的JSP将被加载到iframe中。
使用Spring MVC,在scriptlet中使用request.getContextPath
后,ajax url工作。
我的控制器在此更改之后接收请求并返回jsp页面。然后jsp在示例中将append('data')
更改为append(data)
后显示在iframe中。注意,删除了data中的引号以使其工作。
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) {
}
});
}