- 浏览: 115159 次
- 性别:
- 来自: 上海
文章分类
最新评论
1 自定义异常类 SystemException.java
public class SystemException extends RuntimeException{
//自定义key
private String key;
//自定义参数
private Object[] values;
//实现父类的构造方法
public SystemException() {
super();
}
public SystemException(String message, Throwable cause) {
super(message, cause);
}
public SystemException(String message) {
super(message);
}
public SystemException(Throwable cause) {
super(cause);
}
//自定义构造方法
public SystemException(String message, String key) {
super(message);
this.key=key;
}
//自定义构造方法,带一个参数
public SystemException(String message, String key,Object value) {
super(message);
this.key=key;
this.values=new Object[]{value};
}
//自定义构造方法,带多个参数
public SystemException(String message, String key,Object[] values) {
super(message);
this.key=key;
this.values=values;
}
//相应的get方法
public String getKey() {
return key;
}
public Object[] getValues() {
return values;
}
}
2 自定义异常处理器 SystemExceptionHandler.java
//作用:截获SystemException,并根据SystemException中的信息动态创建ActionMessage等这些错误信息,
将其存在request中
public class SystemExceptionHandler extends ExceptionHandler{
/**
* 处理SystemException异常
*/
@Override
public ActionForward execute(Exception ex,//抛出的异常
ExceptionConfig config,//struts-config.xml中的配置信息
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws ServletException {
ActionForward forward=null;
//创建ActionForward
if(config.getPath()!=null){
//有path属性,则根据path创建
forward=new ActionForward(config.getPath());
}else {
//没有path属性,则根据input属性创建
forward=mapping.getInputForward();
}
if(ex instanceof SystemException){
SystemException se=(SystemException)ex;
//key可有可无,所以取出key进行判断
String key=se.getKey();
ActionMessage error=null;
//如果自定义的key为空,用struts的
if(key==null){
//拿出error.default和message,创建ActionMessage对象
error=new ActionMessage(config.getKey(),se.getMessage());
}else {
//如果自定义的key有值
if(se.getValues()!=null){
error=new ActionMessage(key,se.getValues());
}else {
//如果自定义的key有值,则根据key创建ActionMessage对象
error=new ActionMessage(key);
}
}
//将这个ActionMessage放到request中。key为自定义的,error为ActionMessage对象
//forward是要转到什么地方,根据path属性创建。"request"为scope的一个,也可以
//用config.getScope()
this.storeException(request, key, error, forward, config.getScope());
return forward;
}
return super.execute(ex, config, mapping, form, request, response);
}
}
3 编写配置文件 struts-config.xml
<global-exceptions>
<exception key="error.default"
type="java.lang.Exception"
scope="request"
path="/common/exception.jsp"
<!-- 自定义的异常处理类 -->
handler="org.oa.common.SystemExceptionHandler"/>
</global-exceptions>
4 编写资源文件 ApplicationResources.properties
error.default={0}
error.org.del=Can't Del Orgnation,id is {0}!
5 业务代码
throw new org.oa.common.SystemException("存在子机构,不允许删除!","error.org.del",org.getOname());
发表评论
-
[导入]为Struts 2.0做好准备
2009-10-29 19:00 0摘要: Struts 2.0系列之一 Struts ... -
[导入]常用的Struts 2.0的标志(Tag)介绍
2009-10-29 19:00 287摘要: 在上一篇文章《为Struts 2.0做好准备 ... -
[导入]Struts 2.0的Action讲解
2009-10-29 19:00 608摘要: 有Struts 1.x经验的朋友都知道Act ... -
[导入]在Struts 2.0中国际化(i18n)您的应用程序
2009-10-29 19:00 330摘要: Struts 2.0系列之四 国际化是商业系 ... -
[导入]转换器(Converter)——Struts 2.0中的魔术师
2009-10-29 19:00 460摘要: 在我已往的Struts 1.x项目经验中,有 ... -
[导入]在Struts 2.0中实现表单数据校验(Validation)
2009-10-29 19:00 299摘要: All Input Is Evil! ... -
[导入]Struts 2的基石——拦截器(Interceptor)
2009-10-29 19:00 370摘要: Struts 2.0系列之七 Interce ... -
[导入]在Struts 2中实现文件上传
2009-10-29 19:00 271摘要: Struts 2.0系列之九 Struts ... -
[导入]在Struts 2中实现CRUD
2009-10-29 19:00 358摘要: Struts 2系列之十 CRUD是Crea ... -
[导入]Struts 2中的OGNL
2009-10-29 19:00 533摘要: Struts 2系列之十一 OGNL是一种功 ... -
[导入]Strus 2的新表单标志的使用
2009-10-29 19:00 490摘要: Struts 2系列之十二 Struts 2 ... -
[导入]Struts 2与AJAX(第一部分)
2009-10-29 19:00 453摘要: Struts 2系列之十三 在当今——Web ... -
[导入]Struts 2与AJAX(第二部分)
2009-10-29 19:00 577摘要: Struts 2系列之十四 在上一篇文章《S ... -
[导入]Struts 2与AJAX(第三部分)
2009-10-29 19:00 575摘要: 在上两部分的《Struts 2与AJAX》中 ... -
struts2 页面转向错误No result defined for action and result Invalidation
2009-11-20 16:57 792Messages: No result defined for ... -
struts1.3-基础及原理
2009-11-29 22:59 577网站struts.apache.org 实践 ... -
struts1.3-DispatchAction
2009-11-30 08:10 401DynaActionForm 配态form 1 配置动态for ... -
struts1.3-Converter
2009-11-30 08:10 632Converter添加java.util.Date ... -
struts1.3-exception
2009-11-30 08:11 798一 配置异常(在struts-config.xml文件中定义) ... -
struts1.3-plugIn
2009-11-30 08:12 353可以加入ValidatorPlugIn动态验证框架插件 org ...
相关推荐
6. **Controller配置**:Struts1.3中的控制器主要由`ActionServlet`实现,这部分配置主要是关于Servlet的初始化参数,如`processorClass`用于指定自定义的Processor。 7. **Plug-in配置**:插件扩展了Struts的功能...
Struts1.3引入了Tiles框架,方便构建复杂的页面布局,并提供了Interceptor拦截器机制,可以自定义处理请求和响应的过程。 Hibernate3.2则是一个强大的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来操作...
11. **Plug-in机制**:Struts 1允许添加自定义插件扩展功能,如Spring集成、Hibernate集成等,增强了框架的灵活性。 12. **生命周期**:当一个请求到达时,Struts 1会创建Action实例,处理请求后销毁,遵循Servlet...
6. **异常处理**:Struts提供了全局的Exception Handling机制,允许开发者自定义错误页面和异常处理策略,增强了应用的健壮性。 7. **ActionForward与ActionRedirect**:ActionForward用于在Action执行后将控制权...
<exception-type>javax.servlet.ServletException</exception-type> <location>/common/system_error.jsp </error-page> ``` 这些配置指定了当出现特定 HTTP 错误或 Java 异常时,应该转向哪个 JSP 页面进行显示...
Commons-Fileupload提供了更底层的控制,适合自定义更复杂的文件处理逻辑,而FileForm则提供了简洁的API,适用于简单的文件上传场景。无论选择哪种方式,都需要关注文件大小限制、安全验证以及存储策略,以确保文件...
### 一、Struts2框架中的自定义拦截器 #### 1.1 概念介绍 - **拦截器**是Struts2框架中的一个核心组件,用于对Action执行前后进行一系列操作,如权限验证、日志记录等。 - **自定义拦截器**则是开发者可以根据自己...
public String intercept(ActionInvocation invocation) throws Exception { long start = System.currentTimeMillis(); String result = invocation.invoke(); long end = System.currentTimeMillis(); System...
**1.3 构建 Struts2 应用的步骤** - **引入 Struts2 相关 JAR 包**:确保项目中包含了所有必要的 Struts2 及其依赖库。 - **创建 Struts.xml 文件**:此文件是 Struts2 的核心配置文件,用于定义 Action 映射、结果...
3.6 异常处理:exception-mapping元素 47 3.7 通配符映射 48 3.8 动态方法调用 51 3.9 对动作类进行测试 51 3.10 小结 51 第4章 OGNL 52 4.1 Value Stack栈 52 4.2 读取Object Stack里的对象的属性 53 4.3 ...
这里定义了一个名为`loggingStack`的拦截器栈,其中包含了自定义的日志拦截器`logging`以及默认的拦截器栈`defaultStack`。 通过以上分析,可以看出Struts2的核心标记库和拦截器都是该框架中非常重要的组成部分,...
- `Exception`与`Error`的区别。 - 自定义异常的创建方法。 - `try-catch-finally`语句块的使用。 - `throws`关键字的作用。 - `Throwable`类中的方法如`printStackTrace()`的用途。 - **面试考察要点:** - ...
3.6 异常处理:exception-mapping元素 47 3.7 通配符映射 48 3.8 动态方法调用 51 3.9 对动作类进行测试 51 3.10 小结 51 第4章 OGNL 52 4.1 Value Stack栈 52 4.2 读取Object Stack里的对象的属性 53 4.3 读取...
- `exception`: 存放项目或模块的自定义异常类。 - `service`: 存放业务接口及其实现类。 - `util`: 存放项目或模块的工具类。 - `vo`: 存放数据传输对象。 - `web.action`: 存放展示层action类。 - **设计...
- `exception`: 自定义异常类。 - `service`: 业务逻辑接口及其实现。 - `util`: 工具类。 - `vo`: 数据传输对象。 - `web.action`: 展示层Action类。 **1.7 配置文件** - **Struts配置文件:** 使用`***.xml`...
- 自定义异常: 通过继承 `Exception` 类创建自定义异常类。 ### JSP与Java Web 开发 - **JSP**: Java Server Pages,一种基于Java的服务器端技术,用于生成动态Web页面。 - **BaseDAO**: 数据访问对象的基础类,...