struts错误处理页面

一.处理异常的exception和global-exception
在Web应用中,对异常处理位置都是业务逻辑失败的信息.因为异常处理还需要编写ActionErrors,给出报错信息将导致在Action会看到许多的ActionErrors的代码.
struts解决了这个问题,它允许程序员配置任何异常,并且在将异常转化为报错信息的时候,不必须自行使用"try catch"来捕捉,写报错转发到出错页面.
1.局部异常
就是针对一个Action响应所抛出的异常,该异常将只负责Action的程序段,并且自定义在<action>元素中.

局部异常的定义:
<action-mapping>
<action
input="SampleJsp.jsp" 指定了SampleForm对象使用的ActionForrm对象名称,与form-bean元素定义的name属性一致
name="SampleForm" 指定了SampleForm对象使用的ActionForm对象名称
path="/SampleAction" 如果使用了SampleForm.do的响应,那么ActionServlet控制器组件就会自动找到本Action对象
scope="request" 使用ActionForm的范围
type="struts.sample.cap3.sample1.action.SampleAction" 解释本Action对象的路俓
validate="false"> 定义使用的ActionForm在Action是否需要检验
<expetion
key="userNameException" 指定了在资源配置文件中报错信息的键
path="/SampleJsp.jsp" 指定了报错之后所转发到的JSP页面,在该页面中可以通过标签库来读取报错信息,并显示
type="struts.sample.cap3.sample1.exception.UserNameException"/> 指定了该异常类的java实体名
<exception
key="SampleJsp.jsp"
type="java.sql.SQLException"/>
</action>
</action-mappings>

2.全局异常
指对所有定义在Struts-config.xml的Action程序都进行处理,他定义在<global-exception>元素中
<global-exception>
<exception
key="passWordException.jsp"
path="SampleJsp.jsp"
type="struts.sample.cap3.sample.exception.passWordException"/>
<global-exception>
定义全局变量时无需将<exception>元素作为任何<action>元素的子元素,而是直接作为 <global-exception>的子元素.

简单示例:
(1).自定义标签类
UserNameException.java

package struts.sample.cap3.sample1.exception;
public class UserNameException extends Exception {
public UserNameException(){
super();
}
public UserNameException(String message){
super();
}
public UserNameException(String message,Throwable cause){
super(message,cause);
}
public UserNameException(Throwable cause){
super(cause);
}
public UserNameException(Exception exc){
super(exc);
}

}


(2)业务逻辑类
UserNameService.java

package struts.sample.cap3.sample1.service
import struts.sample.cap3.sample1.exception.UserNameException;
import struts.sample.cap3.sample1.exception.UserNameException2;
public class UserNameService {
public void UserNameLogic() throws UserNameException{
throw new UserNameException("UserName");
}

}


(3)Action类
SampleAction.java

package struts.sample.cap3.sample1.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import struts.sample.cap3.sample1.exception.UserNameException;
import struts.sample.cap3.sample1.service.UserNameService;
public class SampleAction extends Action{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
UserNameService userNameService=new UserNameService();
return null;
}

}


(4)资源配置文件
application.properties
userNameException=用户名无法确定
XXX=XXX
....

(5)JSP页面

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<html>
<head><title>JSP for SampleForm</title>
</head>
<body>
<html:errors/><p/>
<html:form action="SampleAction.do">
userName : <html:text property="userName"/><br/>
password : <html:password property="password"/><br/>
sex: <html:select property="sex">
<html:option key="F" value="F"/>
<html:option key="M" value="M"/>
</html:select><br/>
age : <html:text property="age"/><br/>
email : <html:text property="email"/><br/>
<html:submit/><html:cacel/>
</html:form>
</body>
</html>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huoqubing/archive/2009/07/06/4324214.aspx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值