import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.StrutsStatics;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class AjaxExceptionInteceptor extends AbstractInterceptor {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// String result;
// Object action = invocation.getAction();
// try {
// result = invocation.invoke();
// } catch (Exception e) {
// ActionContext actionContext = invocation.getInvocationContext();
// HttpServletResponse response = (HttpServletResponse) actionContext
// .get(StrutsStatics.HTTP_RESPONSE);
// response.setStatus(500);
// if (action instanceof EditPurInvoice) {
// ((EditPurInvoice) action).setResult(e.getMessage());
// }
// result = PARAM.AJAX_RESPONSE_CODE;
// }
String result = "";
// Object action = invocation.getAction();
ActionContext actionContext = invocation.getInvocationContext();
HttpServletResponse response = (HttpServletResponse) actionContext
.get(StrutsStatics.HTTP_RESPONSE);
try {
result = invocation.invoke();
if (result.equals(Action.ERROR)) {
response.setStatus(403);
}
} catch (Exception e) {
response.setStatus(403);
result = Action.ERROR;
}
return result;
}
}
<global-results>
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">actionErrors\[\d+\], fieldErrors\..+$,
actionMessages\[\d+\]</param>
<param name="contentType">text/html</param>
</result>
<result name="error" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">actionErrors\[\d+\], fieldErrors\..+$,
actionMessages\[\d+\]</param>
<param name="contentType">text/html</param>
</result>
<result name="Exception" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">actionErrors\[\d+\], fieldErrors\..+$,
actionMessages\[\d+\]</param>
<param name="contentType">text/html</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Throwable"
result="Exception" />
</global-exception-mappings>
<action name="searchUserJson" class="searchUserAction">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="ajaxException" />
<result type="json" />
</action>
分享到:
相关推荐
### 基于Struts 2 Ajax实现的Login应用知识点详解 #### 一、Struts 2框架简介 Struts 2是Apache Struts的第二个版本,它是一个用于开发Java Web应用程序的开源框架。该框架提供了强大的MVC(模型-视图-控制器)...
在Struts2中实现Ajax图片上传功能,可以帮助用户在不刷新整个页面的情况下提交图片,提高用户体验。Ajax技术利用JavaScript的XMLHttpRequest对象与服务器进行异步数据交换,使得网页部分更新成为可能。 首先,我们...
在Web开发中,Struts2、Ajax和JSON的结合使用能实现异步数据交互,提高用户体验。本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`<s:select/>`标签)。 ...
在Struts2中,Ajax和JSON技术的结合使得前后端交互变得更加高效和实时,为用户提供了更好的体验。现在我们来深入探讨这些知识点。 首先,`Ajax`(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况...
无论是对于Struts 1还是Struts 2,Ajax Part Taglib都提供了一个强大的工具集,帮助开发者快速实现Ajax功能。随着技术的发展,我们也看到了针对Struts 2的新解决方案,这些方案进一步简化了Ajax功能的集成过程。总之...
在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...
Struts2与JSON的结合使得开发者能够轻松地实现AJAX(Asynchronous JavaScript and XML)交互,提高用户体验。本文将详细解释如何使用Struts2和JSON来实现AJAX返回对象和列表。 首先,JSON(JavaScript Object ...
总结,Struts2和jQuery的Ajax JSON数据交换涉及以下几个关键步骤:配置Struts2的JSON插件,编写返回JSON数据的Action,使用jQuery发起Ajax请求并处理返回的JSON数据。通过这种方式,可以实现客户端与服务器之间的...
Struts2、Ajax 和 jQuery 是Web开发中常用的三大技术,它们在实现动态、无刷新的交互式用户体验方面发挥着重要作用。在这个项目中,我们将探讨如何使用这些技术来验证用户名是否已存在于数据库中。 首先,Struts2 ...
在Struts2框架中,我们可以结合Ajax实现文件上传功能,从而提高用户界面的响应速度和友好性。 首先,我们需要了解Struts2中处理文件上传的基础知识。Struts2提供了`struts2-convention-plugin`和`struts2-core`等...
本主题主要探讨如何在Struts2框架下利用AJAX传递和接收JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 首先,让我们理解三种在Struts2中...
在本文中,我们将探讨如何结合Struts2和Ajax来创建一个实例,这将帮助开发者理解如何在实际项目中利用这两种技术提高用户体验。 首先,让我们深入了解Ajax的核心概念。Ajax,全称Asynchronous JavaScript and XML,...
### Struts2、Ajax与JSON的结合使用 #### 一、引言 在现代Web开发中,前后端分离的趋势越来越明显,而Struts2作为一款成熟的Java Web框架,结合Ajax和JSON技术可以实现更加灵活、高效的前后端交互模式。本文将详细...
同时,通过设置Action的返回类型为`json`,我们可以使Struts2以JSON格式返回响应数据,这对于前端AJAX调用非常有用,因为它可以直接解析JSON数据并更新页面内容。 在前端,我们需要创建一个HTML表单,包含一个或多...
11. **Ajax支持**:Struts2提供了Ajax插件,使得部分页面更新成为可能,提高了用户体验。 12. **错误与异常处理**:Struts2提供了统一的错误处理机制,能够优雅地处理程序中的异常情况。 尚硅谷_佟刚_Struts2.pptx...
在本篇文章中,我们将探讨如何结合Struts2和jQuery来实现Ajax功能,以创建更加动态和交互性的Web应用。 首先,我们需要理解Ajax的核心概念。Ajax,即Asynchronous JavaScript and XML,是一种在不刷新整个页面的...
7. **插件(Plug-ins)**:Struts2支持丰富的插件系统,如Struts2-convention-plugin、Struts2-dojo-plugin等,这些插件提供了更多的功能,如自动Action映射、AJAX支持等。 8. **依赖注入(Dependency Injection, ...
在这个场景中,我们将重点讨论如何使用Struts2的拦截器来实现权限控制,结合AJAX和JSP技术,为用户提供更流畅的交互体验。 首先,我们了解下Struts2拦截器的工作原理。拦截器就像一个过滤器,位于Action调用之前和...
Struts2内建对Ajax的支持,可以通过`<s:a>`标签的`ajax="true"`属性或者`@Ajax`注解实现无刷新更新,提高用户体验。 总结,Struts2作为Java web开发的主流框架之一,其核心技术包括Action、Interceptor、Value ...
Struts和Ajax结合实现上传进度条是一个常见的技术需求,尤其在开发交互性强的Web应用时。Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,而Ajax(Asynchronous JavaScript and XML)则是一种...