我的目的是 extjs提交form到 process.jsp
process.jsp 处理数据后进行两个操作:
1: 通过out.println() 返回操作结果 true或false 给extjs页面的 action.result
extjs页面根据操作结果关闭窗口
2. process.jsp 通过window.open 弹出新窗口,进行下一个页面的操作 (那一堆js就是弹新窗口的)
现在遇到的情况是process.jsp处理数据后,虽然有out.println()返回,但EXTJS页面action.result 接收不到结果
新窗口倒是可以正常弹出
如果去掉弹新窗口的js代码,EXTJS页面action.result 就可以接收到结果了,奇怪啊
1、EXTjs A页面,将信息submit到process.jsp,然后等待操作结果
fm.getForm().submit({
url : 'process.jsp' ,
waitMsg : 'Uploading your file...',
success : function(fm, action) {
if (action.result == true) {
Ext.MessageBox.alert('OK',
'success.');
window.close();
}
},
failure : function(fm, action) {
if (action.result == false) {
alert('File upload false.');
}
}
2、process.jsp 页面根据obj返回类型,分别返回A页面
out.println("false"); 和 out.println("true"); 但A页面action.result 始终接收不到参数
若去掉process.jsp 页面out.println代码下面的js语句则正常,什么原因
<%
String errorStr = "";
Object obj = Getdata.doprocess(request);
if (obj instanceof String && obj.toString().length() > 0) {
errorStr = (String) obj;
out.println("false");
%>
<script type="text/javascript">
window.onload=function(){
var newWim=open("Error.jsp");
newWim.document.write("<%=errorStr%>");
};
</script>
<%
}else if (obj instanceof JSONArray){
out.println("true");
%>
<script type="text/javascript">
window.onload=function(){
var newWim=open('VariantSelection.jsp');
};
</script>
<%
}
%>