关于dwr消除服务器端出错时弹出alter的解决方案

前端之家收集整理的这篇文章主要介绍了关于dwr消除服务器端出错时弹出alter的解决方案前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

环境:dwr3+jsp@H_404_3@

在开发中,我实在不希望dwr弹出alter,只需要打印错误日志就可以,客户端不需要alert出error或者a server error has occurred. 这样的提示,更不需要alert出堆栈信息,客户根本看不懂,也不需要看。怎么办?@H_404_3@

经过分析,engine.js中有dwr的默认错误句柄,defaultErrorHandler,如果用户没有定义errorhandler,就会把defaultErrorHandler赋给errorhandler。那我们就写一个js覆盖errorhandle就可以。@H_404_3@

js内容如下:@H_404_3@

dwr.engine._errorHandler = function(message,ex) {dwr.engine._debug("Error: " + ex.name + "," + ex.message,true);};@H_404_3@

只有上面一句话,上这个js引入到需要加入的页面中,dwr服务端出了错,只会打印日志,不会alter了。@H_404_3@


@H_404_3@


@H_404_3@


@H_404_3@

使用ajaxdwr框架弹出error对话框@H_404_3@

SSH框架中,使用ajaxdwr框架弹出error对话框,容易出现这种情况。这是错误的统一提示,但是这样的提示不够友好,并不知道错误详细情况,可以在dwr.xml配置文件<allow>结点内添加如下代码@H_404_3@

view source@H_404_3@

@H_404_3@

print?@H_404_3@

1@H_404_3@

<ALLOW> @H_404_3@

2@H_404_3@

<CONVERTconverter="bean"match="java.lang.StackTraceElement"/> @H_404_3@


@H_404_3@

3@H_404_3@

<CONVERTconverter="exception"match="java.lang.Exception"/> @H_404_3@

4@H_404_3@

</ALLOW>@H_404_3@


@H_404_3@

这一样来可以打印出错误详情,这时通常会弹出"a server error has occured"提示框,一般这种情况是由于javascript调用java方法时,这时业务逻辑层(biz/service)并非由spring产生,所以这时的业务逻辑层无法被注入数据访问层(通用dao),有两种解决方案:@H_404_3@

一:你可以重新new一个spring配置文件对象 applicationContext;或是在javascript要的访问的java方法中写上自己的数据访问实现@H_404_3@

二:把"bean""spring",表明不是自己创建,而是由spring创建@H_404_3@

@H_404_3@

print?@H_404_3@

1@H_404_3@

<ALLOW> @H_404_3@

2@H_404_3@

<CONVERTconverter="spring"match="java.lang.StackTraceElement"/> @H_404_3@


@H_404_3@

3@H_404_3@

<CONVERTconverter="exception"match="java.lang.Exception"/> @H_404_3@

4@H_404_3@

</ALLOW>@H_404_3@

原文链接:https://www.f2er.com/ajax/165871.html

猜你在找的Ajax相关文章