`

声名式异常处理

阅读更多

新建一个登录页面:

<body>
   <s:form action="login.action" method="POST">
   	<s:textfield name="username" label="Username"></s:textfield>
   	<s:textfield name="password" label="Password"></s:textfield>
   	<s:submit value="SUBMIT"></s:submit>
   </s:form>
  </body>

 

配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="login" extends="struts-default" >
		<global-results>
			<result name="passwordInvalid">/passwordInvalid.jsp</result>
		</global-results>
		<global-exception-mappings><!-- 全局异常处理-->
			<exception-mapping result="passwordInvalid" exception="com.zchen.struts.exception.PasswordException"/>
		</global-exception-mappings>

		<action name="login" class="com.zchen.struts.action.LoginAction">
	<!-- 局部异常处理-->	<exception-mapping result="usernameInvalid" exception="com.zchen.struts.exception.UsernameException"></exception-mapping>
			<result name="success">/success.jsp</result>
			<result name="usernameInvalid">/usernameInvalid.jsp</result>
		</action>
		
	</package>
</struts>

 定义两个异常类:

package com.zchen.struts.exception;

public class UsernameException extends Exception {
	private static final long serialVersionUID = 6595905183933331564L;
	private String message;
	public UsernameException(String message){
		this.message = message;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	
}

 

package com.zchen.struts.exception;

public class PasswordException extends Exception {
	private static final long serialVersionUID = 6595905183933331564L;
	private String message;
	public PasswordException(String message){
		this.message = message;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	
}

 

定义Action类:

package com.zchen.struts.action;

import com.opensymphony.xwork2.ActionSupport;
import com.zchen.struts.exception.PasswordException;
import com.zchen.struts.exception.UsernameException;

public class LoginAction extends ActionSupport {

	private String username;
	private String password;
	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 execute() throws Exception {
		if(!"hello".equals(this.getUsername().trim())){
			throw new UsernameException("username is invalid");
		}
		if(!"word".equals(this.getPassword().trim())){
			throw new PasswordException("password is invalid");
		}
		return super.execute();
	}
	
}

  新建跳转页面:

<body>
   <s:property value="exception.message"/>
 </body>

 

<body>
   <s:property value="exception.message"/>
</body>

 上面是自定的异常处理,我们也可以使用自带的:

 

局部异常处理:

<exception-mapping result="error" exception="java.sql.SQLException">

<result name="error">/error.jsp</result>

全局异常处理:

<global-exception-mapping>

<exception-mapping result="error" exception="java.lang.Exception">

</global-exception-mapping>

分享到:
评论

相关推荐

    4.2CSS的声名(下).

    4.2CSS的声名(下).4.2CSS的声名(下).

    一起学习,一个小代码示例:类的声名.rar

    在编程世界中,类是面向对象编程的基础,它是一种封装数据和操作数据的结构。类的声明是定义一个新类型的蓝图,这个类型可以创建多个对象,每个对象都是该类的一个实例。下面,我们将深入探讨“类的声明”这一重要...

    事无巨细狠抓消防 声名远播绩效增.docx

    事无巨细狠抓消防 声名远播绩效增.docx

    phprpc是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。

    9. **分级错误处理**:Phprpc提供了一套完善的错误处理机制,可以根据错误的严重性进行不同级别的处理,确保系统的稳定性和可靠性。 10. **支持会话**:支持会话功能使得服务可以保持与客户端的连续交互,提供个性...

    Ruby程序设计资料大全

    6. **Ruby的异常处理**:Ruby使用begin-rescue-end语句进行异常处理,允许捕获并处理运行时错误,确保程序的健壮性。 7. **标准库和第三方库**:Ruby拥有丰富的标准库,同时社区提供了大量第三方库(Gems),涵盖了...

    Sybase ASE15技术全解

    Sybase ASE作为处理关键业务计算的最有效的数据管理平台之一而确立了其在业界的领先地位,并通过不断提升产品性能为IT人员创造领先的运行优势而声名远扬。Sybase ASE15新增了磁盘内加密功能、智能分区功能、专利的...

    windows高级编程指南(中文版+25个c源码案例)

    本书以详尽资料和大量的范例深入讨论了有关32位Windows编程的高级问题,包括进程和线程的管理、Win 32的内存管理、消息处理、动态链接库、文件系统和设备输入输出、结构化异常处理、Unicode等,并重点讨论了Windows ...

    Window高级编程指南(分卷1)

    本书以详尽资料和大量的范例深入讨论了有关32位Windows编程的高级问题,包括进程和线程的管理、Win 32的内存管理、消息处理、动态链接库、文件系统和设备输入输出、结构化异常处理、Unicode等,并重点讨论了Windows ...

    Window高级编程指南(分卷2)

    本书以详尽资料和大量的范例深入讨论了有关32位Windows编程的高级问题,包括进程和线程的管理、Win 32的内存管理、消息处理、动态链接库、文件系统和设备输入输出、结构化异常处理、Unicode等,并重点讨论了Windows ...

    CSS对浏览器的兼容性性处理(IE7,6与Fireofx)

    而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名,并且需要写到页面的最上面。 input、br、img等为常用自闭合标签,需要加入“/”进行闭合,例如“&lt;input /&gt;”;其他闭合标签需要进行闭合,...

    乔布斯演讲合辑

    同年被评为最成功的管理者,是声名显赫的“计算机狂人”。 成长记录:  他是一个美国式的英雄,几经起伏,但依然屹立不倒,就像海明威在《老人与海》中说到的,一个人可以被毁灭,但不能被打倒。他和斯蒂夫·沃茨...

    ISOIL品牌产品特点介绍.pdf

    ISOIL流量计产品线包括电磁流量计与刮板流量计,其中插入式电磁流量计因其在楼宇自控领域中的广泛应用而声名卓著。该流量计之所以受到青睐,主要得益于其突出的性价比。ISOIL电磁流量计采用了特殊的探头设计,探头...

    VS2010连接SQL Server 2008操作与编程

    ADO.NET提供了DataSet、DataTable、DataRow等类来处理数据,以及SqlConnection、SqlCommand等类来执行SQL语句。例如,使用C#,你可以创建一个SqlConnection对象,打开连接,创建SqlCommand对象并设置SQL语句,最后...

    灯光音响-grandMA2 德国舞台灯光控台V3.7.0.5.docx

    grandMA2 的性能令人瞩目,具有强化的“多用户”模式、强化的“用户界面”、增加内置的指令显示屏、用 "SVGAρ" 多点触摸触控板、声名显赫的 grandMA 软件,全新设计的显示界面、直观的程序编辑控制、增强改进的硬件...

    键盘消息源代码

    //函数声名 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); BOOL MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE hInstance,int iCmdShow); //函数:WinMain //作用...

    VC++做异形窗口 透明效果

    再添加一些变量的声名和初始化,即可编译运行。图2为运行结果示例:图24.进一步的讨论前面实现了单一模式的异形对话框,但有些情况下又需要不同的样式,如有标题栏、边框等,或者只作局部的处理,这就是前面两个...

    Hytera海能达CH04L01 说明书.pdf

    在通信设备领域,Hytera海能达作为一家声名显赫的制造商,旗下的产品广受专业人士的认可与使用。今天,我们将聚焦于该公司旗下的一款专门为X1系列便携式对讲机所设计的配件——CH04L01便携式充电器。为了保障用户的...

    2011年研究生国赛优秀论文.rar

    由华为公司赞助的“华为杯”赛事,更让这一竞赛活动声名远扬。在这个数学建模的竞技场中,来自全国各地的研究生团队,不仅展现了他们的数学才能和创新思维,更在解决实际问题的过程中,提升了团队合作和科研能力。...

    2013年九年级英语上册 Module 9 Cartoon stories蝙蝠侠文章背景材料 外研版

    影片中的动作场面设计得非常精彩,而夜晚的哥特式背景和配乐共同营造出一种富有神秘感的氛围,使得蝙蝠侠的故事仿佛是一个现代都市中的黑色传说。 故事的核心人物布鲁斯·韦恩,由于童年经历的创伤,决定以蝙蝠侠的...

Global site tag (gtag.js) - Google Analytics