`
yxb1990
  • 浏览: 69911 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SpringMVC ajax方式返回异常处理信息

阅读更多

一直在纠结于标题取什么名字好,读起来好拗口,算了,回归正题。

在网上看到SpringMVC配置异常处理都是返回一个jsp页面给客户,但是很多公司(包括我公司)的前端都是ExtJs,所有的请求都是Ajax请求,这样当后台发生异常时客户什么也看不到,也没有什么提示信息出来,公司以前用的是Struts2(现在还是),用的是一个拦截器,

 

public String intercept(ActionInvocation paramActionInvocation) throws Exception {
	try{
		paramActionInvocation.invoke();
	}catch(Exception e){
		String message = e.getMessage();
		if (message == null){
			message = "各种错误";
		}
		ServletActionContext.getResponse().getWriter().print("{failure:true, msg:'" + message + "'}");
	}
	return null;
}

 

 这样前台就能弹出信息了。注意还要在把struts中默认的的异常拦截器去掉。

 

跑题了,SpringMVC中类似,只不过用的不是拦截器,是框架提供的异常处理支持。

一种方法是在Controller类中使用@ExceptionHandler注解,但是局限是只能在该类中使用。

 

@ExceptionHandler
public @ResponseBody String handleException() {
	return "ajax 错误信息";
}

另一种方法是实现HandlerExceptionResolver接口,并注册之。

resolveException方法代码:简单。

 

public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
	response.setCharacterEncoding("UTF-8");
	try {
		PrintWriter writer = response.getWriter();
		writer.write("ajax 错误信息");
		writer.flush();
	} catch (IOException e) {
		
	}
	return null;
}

 

分享到:
评论
6 楼 chen_ji_gang 2015-03-11  
PrintWriter writer = null;
                try { 
                writer = response.getWriter();
                    writer.write(ex.getMessage()); 
                    writer.flush(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } finally{
                writer.close();
                }
                return null; 

这个是会返回到前端,xml需要配置一下,
<beans:bean id="exceptionResolver" class="*****ExceptionResolver">
    </beans:bean>

但是我遇到的问题是,有的项目是到ajax的success,有的是到ajax的error。求解
5 楼 yxb1990 2013-02-19  
ysa198584 写道
是不是哪里复制过来的啊,我看了好几个,都和你的一样,我的结果是报500错误,根本到不了前端!


你看下是哪里报500错误,你注册的能扑捉到发生的异常吗?
4 楼 ysa198584 2013-02-06  
是不是哪里复制过来的啊,我看了好几个,都和你的一样,我的结果是报500错误,根本到不了前端!
3 楼 yxb1990 2012-11-03  
第二种方式要注册的异常处理器的,现在转战互联网了,不记得怎么弄了。
2 楼 小猪晒太阳 2012-10-24  
现在急于想知道你的解决方法、因为我的需求跟你的需求一样样
1 楼 小猪晒太阳 2012-10-24  
、 采用第二中方式
        PrintWriter writer = response.getWriter(); 
        writer.write("ajax 错误信息"); 
        writer.flush();

输出 肿么不行啊、

前台接收不到、、、 
你测试成功了吗??

相关推荐

    springMVC使用Ajax请求数据

    url: '/springmvc/ajax', // SpringMVC的Controller处理路径 type: 'GET', data: {param1: 'value1'}, // 传递的参数 success: function(response) { // 处理返回的数据,如更新DOM }, error: function(xhr, ...

    spring_mvc_ajax.zip_SpringMVC ajax_SpringMVC+ajax_spring ajax_sp

    SpringMVC提供了丰富的功能,包括依赖注入、数据绑定、异常处理以及视图解析等,使得开发者可以更专注于业务逻辑,而不是基础设施的实现。 Ajax,即Asynchronous JavaScript and XML,是一种在无需重新加载整个网页...

    SpringMVC-Ajax

    在Spring MVC中,我们可以创建一个处理Ajax请求的Controller方法,通常这个方法会返回JSON或XML数据,因为这些格式易于解析并在客户端操作。 例如,以下是一个简单的Ajax请求示例,使用jQuery库: ```javascript $...

    springmvc异步ajax请求

    在返回JSON时,可以使用`@ResponseBody`注解配合`@ControllerAdvice`和`@ExceptionHandler`处理异常情况,以提供统一的错误响应。 6. **Spring MVC的ModelAndView与Ajax** 对于非Ajax请求,我们可以使用`...

    上传图片springMVC和ajax

    3. **错误处理**: SpringMVC提供了丰富的异常处理机制,可以捕获并处理上传过程中可能出现的问题,如文件大小超出限制、文件类型不匹配等。 4. **返回响应**: 一旦图片成功上传,Controller可以返回一个JSON或XML...

    spingmvc+mybatis+统一异常处理机制

    统一异常处理会区分前端是否ajax请求,自动返回json数据格式,要求开发人员在处理ajax请求时统一封装成一个对象返回,以符合代码统一规范。 此工程在idea环境编写,导入请自己新建工程手工复制代码导入。

    springmvc+ajax带有文本域进行文件上传

    2. `ajaxfileupload.js`,这是一个JavaScript库,它允许通过Ajax方式异步上传文件,提供了进度显示和错误处理等功能。 3. Java源代码,包括Spring MVC的Controller类,可能还有Service和DAO层的实现,用于处理文件...

    SpringmvcAjax

    4. **错误处理**:在前端,可以通过Ajax的error回调来处理服务器返回的错误信息。而在后端,可以使用`@ExceptionHandler`注解来处理特定的异常,提供自定义的错误响应。 5. **异步更新UI**:Ajax的真正价值在于能够...

    SpringMVC(八)处理AJAX请求

    Spring MVC提供ModelAndView或Pageable接口来处理这些需求,可以在后端计算分页数据,然后通过AJAX返回给前端。 8. **跨域资源共享(CORS)** 如果AJAX请求来源于不同的源,可能需要处理CORS问题。Spring MVC提供了...

    ajax+springmvc+json

    当Ajax与SpringMVC结合时,通常会利用Ajax发送异步请求到SpringMVC的控制器,控制器处理请求后,将结果以JSON格式返回。这样,前端可以动态更新部分页面内容,而无需刷新整个页面。 JSON是一种轻量级的数据交换格式...

    SpringMVC+Jquery实现Ajax功能

    3. **处理异常**:可以使用`@ExceptionHandler`注解来捕获并处理异常,返回相应的错误信息。 通过上述步骤,SpringMVC和jQuery可以协同工作,实现高效的Ajax功能,使得Web应用能够提供更加流畅、快速的用户体验。在...

    SpringMVC.pdf

    在整个开发流程中,还需要特别注意请求参数的绑定和类型转换、请求中文乱码问题的处理、Session和Cookie的使用、Ajax异步请求的处理、文件上传功能的实现、异常处理机制以及拦截器的应用等细节。 对于文件上传,...

    SpringMVC框架架构介绍

    结合日志框架(如Log4j或SLF4J),在全局异常处理中记录异常信息。 八、JUnit单元测试: 使用MockMVC工具,可以对Spring MVC的Controller进行单元测试,模拟HTTP请求并验证响应。 九、转发与重定向: Spring MVC...

    springmvc + jquery + ajax + json 异步传递数据

    在SpringMVC中,可以使用`@ResponseBody`注解将方法返回的对象直接转换为JSON字符串,然后通过Ajax返回给客户端。 实现SpringMVC、jQuery、Ajax和JSON的异步传递数据,首先需要配置SpringMVC的DispatcherServlet和...

    使用springmvc整合ajax请求demo代码示例

    3. **处理响应**:在Controller中处理业务逻辑后,返回的数据会通过Ajax回调函数的`success`参数传递。在前端,你可以根据需要解析和展示这些数据。 4. **错误处理**:如果请求失败,`error`回调函数会被调用。你...

    springmvc实战项目sample

    - 处理器返回ModelAndView对象,包含处理结果和视图信息。 - ViewResolver解析视图名,加载对应的视图模板。 - 视图模板渲染数据,返回给客户端。 5. **注解驱动开发** SpringMVC支持使用注解进行开发,如`@...

    SpringMVC后台

    SpringMVC提供了全局异常处理机制,可以通过@ControllerAdvice和@ExceptionHandler注解定义全局异常处理器。 10. **数据验证**: SpringMVC集成了JSR 303/349 Bean Validation,可以对表单提交的数据进行验证。 ...

    easyui分页、springmvc后台处理分页

    3. 分页参数的传递:可以通过URL参数、Ajax请求或者隐藏表单字段等方式从前端向后端传递分页信息。 4. 显示总页数:根据总记录数和每页大小计算总页数,供用户导航使用。 综上所述,结合EasyUI的前端分页展示和...

    ajax向springmvc传递json

    7. 错误处理:在Ajax请求中,需要捕获并处理可能出现的错误,如网络错误、服务器异常等。可以通过error回调函数来实现。 总结来说,Ajax向Spring MVC传递JSON涉及的主要步骤包括前端的数据序列化、Ajax请求的发起、...

    SpringMVC:整合JQUERY与JSON

    - **错误处理**:通过Ajax的error回调处理异常,展示错误信息。 5. **最佳实践**: - 安全性:使用Gson或Jackson库进行JSON序列化,避免XSS攻击。 - 性能优化:合理设置Ajax缓存策略,减少不必要的请求。 - API...

Global site tag (gtag.js) - Google Analytics