package com.gcy.exception;
import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.config.entities.ActionConfig;
import org.apache.struts2.dispatcher.ServletDispatcherResult;
import com.opensymphony.xwork2.XWorkException;
public class MyUnknownHandler extends ActionSupport implements UnknownHandler{
/**
* @param namespace 用户请求的Action所在的命名空间。
* @param actionName 用户请求的Action的名字。
* @return 该Action最后生成的ActionConfig,可以返回null。
*/
public ActionConfig handleUnknownAction(String namespace, String actionName) throws XWorkException{
//...加入处理
return null;
}
/**
* @param action 用户请求的Action对象。
* @param methodName 用户请求的Action的方法名
* @return 该Action的该方法处理后返回的Result。
*/
public Object handleUnknownActionMethod(Object action,String methodName)throws NoSuchMethodException{
//...加入处理
return "";
}
/**
* @param actionContext 该Result所在ActionContext。
* @param actionName 该Result所在的Action名。
* @param actionConfig 该Result所在ActionContext。
* @param resultCode 该Result所对应的逻辑视图字符串。
* @return 将要被处理的结果,可以返回null。
*/
public Result handleUnknownResult(ActionContext actionContext,String actionName, ActionConfig actionConfig, String resultCode) throws XWorkException{
actionContext.put("action" , actionName);
actionContext.put("result" , resultCode);
//总是转入unknownResult.jsp页面
return new ServletDispatcherResult("/exceptions/unknownResult.jsp");
}
}
各位高手,帮忙看下,这是李刚书本《Struts 2.1权威指南 》中关于处理未知Action、未知ActionMethod、未知Result 的异常跳转到unknownResult.jsp, 因为实际例子中没有未知Action、未知ActionMethod的实现,小弟苦苦查找许多资料未果,实验多种方法都不行,要求只要能跳转到指定页就行!!!
struts.xml 配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 使用Bean定义了一个UnknownHandler -->
<bean type="com.opensymphony.xwork2.UnknownHandler" name="yeekuHandler" class="com.mmr.exception.MyUnknownHandler"/>
<include file="com/gcy/config/struts/*Action.xml"></include>
<!-- 定义本系统的UnknownHandler栈-->
<unknown-handler-stack>
<unknown-handler-ref name="yeekuHandler" />
</unknown-handler-stack>
</struts>
unknownResult.jsp:
内容 可以随意。
相关推荐
4. **处理重定向**:在拦截器的`intercept()`方法中,当登录成功时,我们获取并返回存储的原始URL,Struts2会自动进行重定向操作。如果登录失败,则按正常流程返回Action的结果。 通过这样的设置,Struts2的拦截器...
- **1.2.8 SiteMesh页面布局框架简介**:SiteMesh是Struts 2中的一个装饰器模式实现,可以帮助开发者轻松地实现页面布局和模板化。 ##### 1.3 为什么选择Struts 2 - **成熟稳定**:Struts 2作为一个成熟的框架,...
在Action类中,我们需要定义一个表示“无权限”的结果,这样当拦截器返回这个结果时,Struts2会根据配置跳转到相应的页面。例如: ```java public class LoginAction { // ... public String execute() { // ....
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...
前端的Ajax请求捕获到这个401状态码后,会执行跳转逻辑,将用户带到登录页面。 总结,通过前端Ajax重写方法和后台Filter的结合,我们可以优雅地处理用户未登录的情况,确保了应用的安全性和用户体验。这种方法使得...
### Struts2 自定义验证程序的实现方法详解 #### 一、Struts2 内建验证程序实现的分析 在探讨如何实现自定义验证程序之前,我们先来了解一下 Struts2 的内置验证机制。Struts2 提供了丰富的内置验证器(Validator...
当用户访问`/hello.action`时,Struts2会调用这个Action,如果执行成功,将会跳转到`/HelloWorld.jsp`页面。 ### 创建Action类 在`src/main/java/com/example`目录下创建`HelloWorldAction.java`,实现一个简单的...
Struts2是一个强大的Java web应用程序框架,它提供了一种组织和控制MVC(Model-View-Controller)架构的机制。在Struts2中,拦截器是实现业务逻辑和控制流程之间解耦的关键组件。本教程将详细介绍如何使用Struts2的...
// 未登录,跳转到登录页面 } // 用户已登录,继续执行下一个拦截器或Action return invocation.invoke(); } } ``` 2. **注册拦截器**:在Struts2的配置文件(如struts.xml)中注册刚才创建的拦截器,并指定...
Struts2是Java Web开发中一个非常流行的MVC框架,它极大地简化了基于Servlet和JSP的应用程序构建。对于初学者来说,理解并动手实践Struts2的第一个实例是非常重要的,这将帮助他们快速掌握该框架的基本用法。下面,...
本文将通过一个具体的示例来详细介绍如何在Struts2项目中配置过滤器。 #### 二、过滤器配置实例分析 ##### 2.1 web.xml配置解析 在给定的web.xml配置文件中,可以看到对`SessionInvalidate`过滤器进行了定义和...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Struts2中,处理HTTP错误状态码,如404 Not Found,是开发过程中的常见需求。404错误通常表示服务器无法找到请求的资源,...
### Struts2 注解详解 #### 一、Struts2 Convention 插件介绍与使用 在 Struts2 框架的发展过程中,随着版本的更新和技术的演进,其配置方式也发生了变化。从 Struts2.1 版本开始,官方不再推荐使用 Codebehind ...
一个常见的应用场景是登录验证拦截器,当用户访问受保护的资源时,拦截器首先检查用户是否已登录,未登录则重定向到登录页面。 ```java public class LoginInterceptor implements Interceptor { @Override ...
在Java Web开发中,Hibernate和Struts2是两个非常重要的框架。Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,而Struts2则是一个基于MVC(Model-View-Controller)设计模式的行动驱动框架,用于构建...
Struts2是一个强大的Java web开发框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性、可扩展性极高的Web应用程序的工具和方法。本教程将深入探讨Struts2的核心概念、配置以及API的使用...
本篇主要介绍如何实现一个全局的异常处理机制,以便将未处理的异常日志保存到本地文件,并在后续开发中将这些日志提交至服务器进行分析。 首先,我们需要创建一个`ExceptionHandler`类,这个类将会作为全局的错误...
Struts拦截器(Interceptor)是基于Java的Spring MVC和Struts2框架的一种设计模式,它在请求被控制器处理之前和之后执行特定的操作。在SSH(Struts2、Spring、Hibernate)系统中,拦截器用于增强应用程序的功能,...
Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。MyEclipse是一款强大的集成开发环境,特别适合于Java EE应用的开发,包括Struts2项目。以下是对如何使用MyEclipse进行Struts...
5. **Struts2的异常处理**: 通过配置全局或局部异常映射,可以统一处理异常,提供更好的用户体验。 6. **主题和皮肤**: Struts2支持多种UI主题,可以改变应用的外观和样式。 7. **国际化**: Struts2提供国际化的...