struts2异常处理

struts2处理项目全局异常 项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。 立即下载

Struts2中的异常处理有两种形式:一种是局部异常处理,一种是全局异常处理

在struts.xml中的package下有两个这样的标签:<global-exception-mappings>和<global-results>,前者指定异常处理的类,后者是异常处理结果,通常指定一个显示异常信息的页面。

而在action中,也有类似全局的异常处理,<exception-mapping>和<result>。

全局的异常处理可以被该包下所有的action使用,而局部异常处理只能被一个action使用。

若在某一个action中抛出了异常,那么struts会现先在本action查找是否有处理该异常的局部异常处理类,即<exception-mapping>,若没有,才会去找是否有全局的异常处理类,即<global-exception-mappings>

异常处理的结果的执行流程也是如此,先局部后全局,即使异常处理类是全局的,struts也会先去局部找是否有对应的异常处理结果,若没有,再去找全局的。

示例:以登录的例子,演示一下,异常处理的使用


登录页面,包含两个信息:姓名和密码

Login.jsp:

<form action="/struts2/test/login3" method="post">
    	姓名:<input type="text" name="username"/><br/>
    	密码:<input type="password" name="password"/><br/>
    	<input type="submit" value="提交"/>
</form>


然后再建立异常处理类,这里对姓名和密码,分别建立两个异常处理类:

UsernameException类

package com.suo.exception;

public class UsernameException extends Exception {
	private String message;
	
	public UsernameException(String message)
	{
		super(message);
		this.message=message;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
}

PasswordException类:

package com.suo.exception;

public class PasswordException extends Exception
{
	private String message;
	
	public PasswordException(String message)
	{
		super(message);
		this.message=message;
	}


	public String getMessage() {
		return message;
	}


	public void setMessage(String message) {
		this.message = message;
	}
}


配置struts.xml文件:
 <package name="test" namespace="/test" extends="struts-default">
	 
	 	<global-results>
	 		<result name="usernameInvalid">/WEB-INF/result/usernameInvalid.jsp</result>
	 	</global-results>
	 	
	 	<global-exception-mappings>
	 		<exception-mapping result="usernameInvalid" exception="com.suo.exception.UsernameException"></exception-mapping>
	 	</global-exception-mappings>
	 	
	 	<action name="login" class="com.suo.actions.LoginAction" method="execute">
	 		<exception-mapping result="passwordInvalid" exception="com.suo.exception.PasswordException"></exception-mapping>
	 		<result name="passwordInvalid">/WEB-INF/result/passwordInvalid.jsp</result>
	 		<result name="success">/WEB-INF/result/LoginResult.jsp</result>
	 	</action>
</package>


在LoginAction中捕获异常,并跳转到相应的页面:
public String execute() throws Exception
	{
		if(!"suo".equals(username))
		{
			throw new UsernameException("username invalid !");
		}
		
		if(!"piao".equals(password))
		{
			throw new PasswordException("password invalid !");
		}
		return SUCCESS;
	}


加速度计解算姿态角 姿态角(欧拉角) 欧拉角主要用于描述刚体在固定三维参考坐标系下由于绕三轴任意旋转而形成的姿态角,具体描述参看欧拉角说明 图中xyz为固定参考系坐标,XYZ为刚体自有坐标系 (假定右手定则,即大拇指指向某一轴正方向,握拳是其余手指的转动方向为姿态角变化的正方向),则定义 绕固定坐标系的z轴旋转:航向角yaw, 转动 y 角度 绕固定坐标系的y轴旋转:俯仰角pitch,转动p 角度 绕固定坐标系的x轴旋转:横滚角roll, 转动r 角度 可以看出欧拉角或者姿态角是相对各个轴的角度偏移,再假定旋转的顺规为Z 阅读详情

相关推荐

三菱FX5U运动控制(步进)

三菱FX5U脉冲定位控制,原点回归,相对定位,绝对定位,运动控制案例。

weixin_55762091的博客 1万+

Struts2总结--全局异常处理

在Struts2中配置了全局异常后,出现异常后可以直接往外抛,则异常会直接交给Struts2去处理,Struts2配置全局异常需要配置&lt;global-exception-mappings&gt;或者&lt;exception-mapping&gt;来进行异常个管理。(&lt;exception-mapping&gt;是配置在Action中) 用于异常处理的&lt;exception-map...

qq_25011427的博客 969

进芯AVP28335烧录避坑全记录:CCS、Uniflash、C2Prog、SDFlash四大工具配置详解

本文详细解析了进芯AVP28335芯片在烧录过程中遇到的常见问题及解决方案,涵盖CCS、Uniflash、C2Prog和SDFlash四大工具的配置要点。针对国产器件AVP28335的特殊需求,提供了从开发环境准备到烧录验证的全流程指南,帮助开发者高效完成程序烧录,避免常见陷阱。

weixin_30836759的博客 588

Struts2 异常处理机制

原创 Struts2 异常处理机制 ...

weixin_44137282的博客 1867

超级详细的H3C模拟器HCL的交换机Telnet服务配置过程(图文)

VC++2017 MFC关于一个电话机房配线架进线出线节点数据库管理的程序 机房数据库原来是一个EXCEL表,查询,输入数据不方便。现用access数据库ODBC访问。平常没编过程序,编个程序练练手。记录一下学习中的问题,和解决方法,供大家分享,讨论,以便共同进步。希望多提宝贵意见,携手提高代码水平。 程序写的很不规范,代码冗余,显得程序臃肿,代码重用性差。发表这篇博客的目的也是为了改进这个程序。CListCtrl 单元格可以编辑,有Combo Box下拉列表功能。使用PreTranslateMe

techcai的博客 1万+

Ubuntu 24.04 高效部署Slurm集群:从零到生产环境实战

本文提供了一份在Ubuntu 24.04 LTS系统上从零开始部署生产级Slurm高性能计算集群的完整实战指南。内容涵盖网络配置、Munge安全认证、Slurm核心组件安装与配置,并深入讲解了cgroups资源隔离、NFS共享存储、配置无感知模式等生产环境优化技巧,最后通过实例演示如何提交与管理Slurm作业,帮助用户构建高效、稳定的计算平台。

weixin_29213655的博客 564

Struts2中的异常处理

因为在Action的execute方法声明时就抛出了Exception异常,所以我们无需再execute方法中捕捉异常,仅需在struts.xml 中配置异常处理。 为了使用Struts2的异常处理机制,必须打开Struts2的异常映射功能,这需要exception拦截器。在struts-default.xml文件中已经开启了exception拦截器。 声明式异常捕捉 Struts2的异...

数据库天地 295

CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(一)

CHB-MIT癫痫EEG脑电数据处理CHB-MIT头皮脑电图数据介绍CHB-MIT头皮脑电图数据下载CHB-MIT头皮脑电图数据处理提取原始数据滤波(0.1~50hz)数据分块(时间窗口) CHB-MIT头皮脑电图数据介绍 该数据库收集自波士顿儿童医院,其中包括患有难治性癫痫发作的儿科患者的脑电图记录。停用抗癫痫药物后最多持续几天对受试者进行监测,以表征其癫痫发作并评估其对手术干预的候选资格。 从22位受试者中收集了23个病例的记录(5例男性,3至22岁; 17例女性,1.5至19岁)。 (案例chb21是

AI_DOG的博客 1万+

struts2全局异常处理

/xml配置文件/struts2的配置/struts2全局异常处理.txt===================================================================== 1、baseaction加上注解@ParentPackage("default") ==================================================...

weixin_43292547的博客 564

2026华为OD机试(C语言)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C语言实现。

MISAYAONE的博客 11万+

【WRF模拟】如何查看 WPS 的输入静态地理数据(二进制格式)?

如何查看 WPS 的输入静态地理数据(二进制格式)?

WW、forever的博客 632

4、struts2异常处理及全局异常与结果剖析、struts2模型驱动及分层体系架构

1、我们可以自定义异常,并且指定当异常出现时,转向哪一个处理页面,首先针对LoginAction这个Action来说,在execute()方法中手工抛出两个异常: UsernameException和PasswordException,异常定义: package com.cdtax.exception; public class UsernameException extends Exc

kaoa000的专栏——非淡泊无以明志,非宁静无以致远 1443

用 deepseek 写小说(通用版提示词模板)

#Initialization:作为[Role],在[Goals]下,回顾你的[Skill],严格遵守[Constraints],5.第五步:人物大纲,给小说里的每个人物撰写背景故事,深挖人物过去的经历,原生家庭,住所:一栋位于市郊的房子,有三个卧室,房龄 10 年,厨房很大,当中有一个鸟式大理石。示例 2.戈德里洛克先去了熊老爹的工作坊,尝试用大纲法写作,却发现这种方法无聊透顶,1.第一步:一句话概括,一句话概述小说内容,主要包含小说癸型,主角,以及故事中需要。大灰狼的暴行彻底激怒了戈德里洛克,

陈奕昆的博客 2967

Struts2的异常处理机制

任何成熟的MVC框架都应该提供成熟的异常处理机制,当然也可以在execute方法中手动捕捉异常,当捕捉到特定异常时返回特定的逻辑视图名。这种处理方式完全是手动处理异常,非常烦琐且维护性不好。如果我们要改变异常处理方式,就必须修改Action代码。最好的方式是可以通过声明式的方式管理异常处理。 手动捕捉异常示例: public String execute() throws Ex

想念的专栏 719

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

配置Struts2的异常处理

Struts2异常处理分为默认异常处理和声明式异常捕捉: 默认异常处理,默认异常处理执行excute()方法,可从execute()的方法签名: public String execute() throws Exception知,该默认方法可抛出任何异常,该异常在struts2中的配置在struts-default.xml中,该配置如下: <interceptors> <inte...

weixin_43638314的博客 219

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

struts2异常处理流程_Struts2异常处理示例教程

struts2异常处理流程Exceptions are common in any application. We try to catch it and process it but sometimes our application is not able to process it and it’s thrown to the container. Struts2 provides a ro...

从零开始的教程世界 430

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java之struts2之异常处理

1.在应用项目中,异常的出现时很正常的。而且项目上线后发生异常也很正常的。那么需要对这些异常有相应的处理机制,以便客户能够看你到更加友好的界面。Struts2中提供了异常处理机制。 2.Struts中异常处理实现   a) 在 action 处理类中抛出的异常 public class UserAction { public String add() throws N...

weixin_30750335的博客 77

16.如何自学Struts2之Struts2异常处理[视频]

16.如何自学Struts2之Struts2异常处理[视频] 之前写了一篇“打算做一个视频教程探讨如何自学计算机相关的技术”,优酷上传不了,只好传到百度云上: http://pan.baidu.com/s/1kTDsa95 有问题可以直接回复这篇文章。

每一天都有新的希望 1499

struts2异常处理方式

struts2异常处理 web.xml <!-- struts2的前端控制器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilte...

qq_42197800的博客 250

Struts2异常处理

传统异常处理方式 Java中的所有异常的根类是Throwable,Throwable类派生Exception和Error。 Error表示Java程序中出现一个非常严重的错误。 对Exception异常处理的过程中,一般通过try catch finally语句,或者使用throws Exception来捕获异常。 但这种方式需要书写大量的catch块,非常烦琐。最大的问题是,异常处理与代

309

Struts2声明式异常处理

1.struts2提供了一种机制就是声明时异常处理,把action请求处理时没有捕获的异常在执行时进行处理。比如在service层抛出一个运行时异常,比如throw new RuntimeException("用户名不存在");,就可以在struts.xml中给action配置异常处理,让页面转发到jsp中,在jsp中通过&lt;s:property value="exception.messag...

qq_35232663的博客 191
上一篇: Struts2输入校验以及错误信息处理(2)——用Struts2定义好的校验框架进行校验
下一篇: struts2模型驱动
hackerain
博客等级 码龄16年 753粉丝 220原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值