struts2的异常
index.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>测试异常</title>
</head> <body>
<form action="lee/login.action">
用户名:<input type="text" name="username" /><br/>
密码:<input type="password" name="password" /><br />
<input type="submit" value="提交" />
</form>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="lee" extends="struts-default">
<!-- 此处定义所有的全局结果 -->
<global-results>
<!-- 逻辑名为sql的结果,映射到/sqlexception.jsp页面 -->
<result name="sql">/sqlexception.jsp</result>
<!-- 逻辑名为root的结果,映射到/exception.jsp -->
<result name="root">/exception.jsp</result>
</global-results>
<!-- 此处定义所有的全局异常映射 -->
<global-exception-mappings>
<!-- Action抛出SqlException异常时,转入名为sql的结果 -->
<exception-mapping result="sql" exception="java.sql.SQLException"></exception-mapping>
<exception-mapping result="root" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
<!-- 下面配置本系统的Action -->
<action name="login" class="lee.LoginAction">
<!-- 下面配置了一个局部异常映射,当Action抛出lee.MyException时,转入名为my的结果 -->
<exception-mapping result="my" exception="lee.MyException"></exception-mapping>
<result name="my">/exception.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
MyExction.java
package lee;
public class MyException extends Exception {
public MyException(String mess){
super(mess);
}
}
LoginAction.java
package lee;
import java.sql.SQLException;
import com.opensymphony.xwork2.Action;
public class LoginAction implements Action{
private String username;
private String password;
//封装服务器处理后的结果
private String tip;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTip() {
return tip;
}
public void setTip(String tip) {
this.tip = tip;
}
@Override
public String execute() throws Exception {
String result="";
if(getUsername().equalsIgnoreCase("user")){
throw new MyException("自定义异常");
}
if(getUsername().equalsIgnoreCase("sql")){
throw new SQLException("用户名不能为sql");
}
if(getUsername().equals("scott")&&getPassword().equals("tiger")){
setTip("哈哈,服务器提示!");
result=SUCCESS;
}
else {
result=ERROR;
}
return result;
}
}
sqlexception.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> </head> <body>
<h1>sqlexception</h1>
<h2><s:property value="exception.message" /> </h2>
<h3>
<s:property value="exceptionStack" />
</h3>
</body>
</html>
在登陆页用户名框中输入sql,然后提交
跳转到sqlexception.jsp页面

struts2的异常的更多相关文章
- struts2学习笔记之十二:struts2对异常的自动处理
在UserAction类中引发异常,但是不处理 package com.djoker.struts2; import java.util.Date; import org.apache.struts2 ...
- struts2 进阶--异常捕获机制
在SpringMvc中有自己的异常处理机制,struts2当然会有此功能,主要是在struts.xml中配置: <bean type="com.opensymphony.xwork2. ...
- struts2的异常配置
1:当我们出现异常我们浏览器会直接暴露我们的技术结构,会给我们的项目带来一些安全隐患.2:当这种错误出现,给用户感觉是非常不友好.3:怎么解决 1:如果处理找不到action方法的错误呢? 在Stru ...
- struts2 笔记03 异常支持、防止页面刷新和后退、方法验证
Struts2对异常支持(声明式异常.自动的异常处理), 异常处理(运行期异常事务自动回滚) 1. 自定义异常类,继承RuntimeException或Exception实现构造方法. 2. 配置异常 ...
- struts2笔记12-声明式异常
1.配置异常处理 <action name="save" class="com.test.actions.ProductAction" method=&q ...
- Struts2中的异常处理
因为在Action的execute方法声明时就抛出了Exception异常,所以我们无需再execute方法中捕捉异常,仅需在struts.xml 中配置异常处理. 为了使用Struts2的异常处理机 ...
- struts2异常处理及类型转换
一.struts2对异常的处理 1.自定义局部异常: <action> <exception-mapping result="sonException" exce ...
- Struts2 一张图片引发的bug
今天如常的打开项目开放.写了一会保存测试.在登录时出了个错误当不影响正常使用.丫的昨天还好好的.行下手上的工作 开始找bug 错误核心代码如下: 10:34:46,442 WARN OgnlValu ...
- java struts2入门学习---异常处理和类型转换
一.struts2对异常的处理 1.自定义局部异常: <action> <exception-mapping result="sonException" exce ...
随机推荐
- cacti
http://www.cacti.net/downloads/docs/html/index.html Cacti脚本及模板论坛:http://forums.cacti.net/forum-12.ht ...
- TaffyDB:开源JavaScript数据库
你是否曾经注意到javascript的对象有点像数据库中的记录,你把很多javascript对象包装到一起时就像是你在处理一个数据库中的表,TaffyDB是一个Javascript库,它提供了强大的数 ...
- list如何remove 特别容易出错
java中对list进行操作很频繁,特别是进行list启遍历,这些操作我们都会,也很熟悉,但是对java中list进行删除元素,remove list中的元素就不怎么熟悉了吧,可以说很陌生,是实际操作 ...
- weblogic11g重置控制台管理员用户名/密码
weblogic安装后,很久不用,忘记访问控制台的用户名或者密码,可通过以下步骤来重置用户名密码. 说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录例如我的做 ...
- apache commons vfs 文件夹监控
package test.vfs; import java.io.File; import org.apache.commons.logging.Log; import org.apache.comm ...
- RMAN备份与恢复之spfile
1.备份spfile 有关控制文件及参数文件备份的几种形式: 单独备份控制文件及参数文件 RMAN> backup current controlfile; 备份数据文件时包含控制文件 RMAN ...
- php 安装shpinx扩展
cd /home/packages wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz tar xzvf sphinx-0.9.9.tar.g ...
- LintCode "Expression Tree Build"
Lesson learnt: for any calculator problems, keep 2 stacks: 1 for operators and 1 for operands. class ...
- RPM Fusion on CentOS7
RPM Fusion RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship. Tha ...
- 109. Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...