Struts 1 学习笔记-5-3(Struts的自动处理异常以及模式套用)
2008-02-16 18:44
691 查看
一.自动处理Exception:
1.首先要确保在代码里没有捕获异常,而是将异常全部抛给上层。
2.在struts-config.xml中配置,例(你也可以不配置path,而是在要显示的界面上通过<html:errors/>调用,当然不要忘记引入标签<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%> ):
exception可以配置成全局的或者专为单个action,按需要配置
<exception path="/error.jsp" key="drp.user.not.found" type="com.codedestiny.struts.UserNotFoundException"></exception>
<exception path="/error.jsp" key="dpr.user.password.error" type="com.codedestiny.struts.PasswordErrorException"></exception>
3.error.jsp(就是通过标签调用):
<%...@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%...@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<h1><html:errors/></h1>
</body>
</html>
二.模式套用:
1.使用Struts的DispatchAction在转向时可以采用模式套用的方式,先上一个简易的UserAction.java:
package com.bjsxt.drp.web.usermgr.actions;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class UserAction extends DispatchAction ...{
public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward find(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward modify(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
}
2.在struts-config,xml中作如下配置:
<action path="/user/*" type="com.bjsxt.drp.web.usermgr.actions.UserAction" scope="request" parameter="command">
<forward name="success" path="/user/{1}_success.jsp"></forward>
</action>
3.这样一来如果这样一个链接user/add.do?command=add即可访问到user/add_success.jsp
user/delete.do?command=delete可访问到user/delete_success.jsp
1.首先要确保在代码里没有捕获异常,而是将异常全部抛给上层。
2.在struts-config.xml中配置,例(你也可以不配置path,而是在要显示的界面上通过<html:errors/>调用,当然不要忘记引入标签<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%> ):
exception可以配置成全局的或者专为单个action,按需要配置
<exception path="/error.jsp" key="drp.user.not.found" type="com.codedestiny.struts.UserNotFoundException"></exception>
<exception path="/error.jsp" key="dpr.user.password.error" type="com.codedestiny.struts.PasswordErrorException"></exception>
3.error.jsp(就是通过标签调用):
<%...@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%...@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<h1><html:errors/></h1>
</body>
</html>
二.模式套用:
1.使用Struts的DispatchAction在转向时可以采用模式套用的方式,先上一个简易的UserAction.java:
package com.bjsxt.drp.web.usermgr.actions;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class UserAction extends DispatchAction ...{
public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward find(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
public ActionForward modify(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
}
2.在struts-config,xml中作如下配置:
<action path="/user/*" type="com.bjsxt.drp.web.usermgr.actions.UserAction" scope="request" parameter="command">
<forward name="success" path="/user/{1}_success.jsp"></forward>
</action>
3.这样一来如果这样一个链接user/add.do?command=add即可访问到user/add_success.jsp
user/delete.do?command=delete可访问到user/delete_success.jsp
相关文章推荐
- 【ssh学习笔记】struts处理json异常之JSONWriter can not access a member of class org.springframework.aop.TruePoin
- <<Linux内核完全剖析 --基于0.12内核>>学习笔记 第4章 80x86保护模式及其编程 4.6 中断和异常处理
- 异常处理及convention---struts2学习笔记
- python学习笔记(八):异常处理
- Python中的异常处理相关语句基础学习笔记
- Python中的异常处理学习笔记
- JNI 学习笔记(三)-- JNI访问数组、引用、异常处理、缓存策略
- Java之异常处理学习笔记
- java学习笔记7 - Spring mvc 统一异常处理和静态文件的配置
- Guava学习笔记:简化异常处理的Throwables类
- Java学习笔记之异常处理
- oralce学习笔记之异常处理篇
- swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)
- 【JavaEE学习笔记】Spring_02_IoC/DI依赖注入,集合对象属性注入,自动装配,代理模式
- Think in Java 笔记_Chapter12_1_Exception基础_异常处理3_自定义异常以及抛出多个异常的处理
- 精通SqlServer2005学习笔记----Sqlserver事物中的异常处理
- 中断+异常处理【学习笔记】
- java学习笔记12--异常处理
- 朱老师ARM裸机学习笔记(五):ARMCPU工作模式以及寄存器讲解
- Struts2学习笔记三(异常处理、模型驱动和属性驱动、servlet接口、Preparable接口)