Struts1.X声明式异常学习

Struts声明式异常

1.编写相应的异常类;
2.捕捉相应的异常类,进行抛出,可以把该代码封装到相应的方法中,比如在LoginDAO这个类中,有个isLogin()方法判断是否登陆成功,同时根据需要抛出相应异常,如:UserNotFoundException、PasswordErrorException等。在LoginAction这个Action类中调用LoginDAO类中的isLogin()方面验证用户是否登陆成功;
3.在国际化资源文件中,编写相应异常的key,以及对于的value值;

4.在struts-config.xml中配置以上相关需要的信息,同时,配置<exception/>标签,指定相应的key,type的属性,key值对应国际化资源文件中异常的key值,type为自己编写的异常类。同时,在相应Action中配置input属性,该属性为出现异常时进行跳转的页面。如在<exception/>中配置path属性,则path属性优先于<action/>中的input属性。

5.在需要显示错误提示的jsp页面用<html:errors/>标签进行错误信息读取。

 

LoginDAO类:

public class LoginDAO {
	public void isLogin(String username,String password){
		if(!(username.equals("admin"))){
			throw new UserNotFoundException();
//事先声明的异常类
		}
		else if(!(password.equals("admin"))){
			throw new PasswordErrorException()
;//事先声明的异常类
		}
	}
}

LoginAction类:


package wiki.struts;  

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 org.apache.struts.action.DynaActionForm;

public class LoginAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		DynaActionForm daf = (DynaActionForm)form;
		String username = (String)daf.get("username");
		String password  = (String)daf.get("password");
		LoginDAO loginDAO = new LoginDAO();
		loginDAO.isLogin(username, password);
		return mapping.findForward("success");
	}
} 
  

 

struts-config.xml中的部分配置

<action-mappings>
		<action path="/login" type="wiki.struts.LoginAction"
			name="loginForm" scope="request" input="/login.jsp"
>
			<exception key="login.user.name.error"
				type="wiki.struts.UserNotFoundException"   path="/login_error.jsp" />
			<exception key="login.user.password.error"
				type="wiki.struts.PasswordErrorException" path="/login_error.jsp" />

			<forward name="success" path="/login_success.jsp" />
		</action>
 
Arduino IDE 开发ESP32-S3编译报错 Sketch too big?一步步解决! 解决方法很简单,只需要一步步来修改 Arduino IDE 的配置即可。确保你已经打开 Arduino IDE 并加载了你的 ESP32 代码。如果你也遇到了这个问题,按这个方法试试,应该就能顺利搞定!,如果你需要 OTA,就不能选这个方案,需要换成。,但我回头一想,我这块 ESP32-S3 可是。,按理说存储空间应该足够啊,那这到底是咋回事?,默认方案就装不下了,这时就需要选择更大的。按钮,这次应该不会报错了!,然后在下拉菜单中找到。,可以支持更大的固件。如果你的固件体积超过。,就能正常编译上传。 阅读详情

相关推荐

告别踩坑!S32K3xx芯片上RTD-SDK的DFLASH与FEE模块配置全流程(基于S32DS)

本文详细解析了在NXP S32K3xx系列MCU上配置RTD-SDK的DFLASH与FEE模块的全流程,基于S32DS开发环境。从Cache配置、Mem_43_InFls模块设置到MemAcc模块的三种调用模式,提供了实战代码示例和常见问题排查表,帮助开发者高效完成存储管理配置,避免常见错误。

weixin_42653691的博客 269

Struts1+spring2+hibernate3+mysql5.0出现的事务问题

出现事务无法回滚问题,以前用oracle,sqlserver做的项目一直没有出现事务不能回滚问题,这次用的是mysql出现了事务无法回滚问题。到网上查了资料说要把mysql的表格式设为INNODB就可以了,但我看了我的表,都是这个格式啊。 spring主配置文件关于事务的配置如下:[code="java"] ...

ajjjian 141

pytorch中的wheel文件

whl 文件是 Python 的一个软件包分发格式,用于在 Python 中安装软件包。它是 Python Wheel 的缩写,也被称为 wheel 文件。这种文件格式旨在简化 Python 软件包的安装和分发。对于 PyTorch 而言,它提供了预编译的 .whl 文件,您可以通过 pip 安装这些文件来快速方便地安装 PyTorch。这些 .whl 文件是已经编译好的二进制分发文件,可以直接安装在您的 Python 环境中,而无需再进行编译。

bj_zhb的博客 3126

学习Struts框架系列(三):声明式异常处理

在Struts1.X的版本中加入了对异常的处理Exception Handler,有了它我们可以不使用try/catch捕获异常,一旦出现了我们已经定义的异常,那么就会转到相应的页面,并且携带异常信息,自动性增强。 Struts框架提供了默认的异常处理org.apache.struts.action.ExceptionHandler,它的execute()方法负责处理异常,在需要实现自定义处理时...

weixin_34101784的博客 104

科研人必备!用WisPaper搭建个人文献知识库的完整指南(附Zotero联动技巧)

本文详细介绍了如何利用WisPaper搭建高效的个人文献知识库,包括文件命名标准化、文件夹结构设计、语义搜索技巧及与Zotero的深度联动方法。通过智能标签系统和知识图谱功能,科研人员可以快速定位关键文献,提升研究效率。特别适合需要管理大量学术文献的研究者。

weixin_30823001的博客 267

PowerBI启动故障排查:环境变量与兼容性设置全指南

本文详细解析了PowerBI启动故障的常见问题,如空白界面和闪退,并提供了环境变量修改与兼容性设置的全方位解决方案。通过调整WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS环境变量和设置兼容模式,有效解决PowerBI启动问题,提升软件运行稳定性。

weixin_29255731的博客 471

java异常,struts2异常处理

     为什么要在JEE项目中谈异常处理呢?      可能许多java初学者都想说:“异常处理不就是 try….catch…finally吗?这谁都会啊!”。其实想的太简单了,异常就是当前程序不能处理抛出错误时,此时你有两种处理方法:1、使用try….catch…finally你来捕获,2、继续抛出异常,由下一个使用当前程序的程序员来处理。这样让程序继续正常执行...      而在...

ycd19880511的专栏 192

移远EC800M CAT1模块HTTP POST实战:从AT指令到数据上报的完整避坑指南

本文详细介绍了移远EC800M CAT1模块通过AT指令实现HTTP POST数据上报的完整开发流程,包括模块初始化、PDP上下文配置、HTTP POST实现及优化策略。针对实际开发中的常见问题如网络异常、低功耗需求等提供了经过验证的解决方案,帮助开发者快速实现稳定可靠的物联网数据传输功能。

weixin_42556197的博客 480

Struts1.x 总结(很全面)

Struts-概览(待续)

孙晴 2015

人形机器人五大核心零部件技术解析与国产化实况

人形机器人并非简单机械集成,而是物理、能量、感知、决策与执行五层系统毫秒级协同的复杂体。其性能瓶颈往往不在于整机算法,而深植于谐波减速器的刚度稳定性、无框力矩电机的功率密度与温升控制、六维力传感器的动态响应与温漂抑制、运动控制器的实时OS生态及灵巧手的多指协同精度等底层硬件能力。这些部件共同构成整机68.3%的成本,且国产化率差异显著——谐波减速器达72%,而高精度力矩传感器仍受制于日德厂商。本文聚焦‘谐波减速器’和‘六维力传感器’两大热词,从材料工艺、参数定义、失效模式到产线验证,揭示真正卡脖子的技术关卡

weixin_29065959的博客 406

Google Earth Engine(GEE)—— 显示如何使用迁移的训练样本进行多年分类的脚本(sentinel-2影像为例)光谱差异()

HydroSHEDS 是一种地图产品,它以一致的格式为区域和全球范围的应用程序提供水文信息。它提供了一套不同比例的地理参考数据集(矢量和栅格),包括河流网络、流域边界、排水方向和流量累积。请注意,对于北纬 60 度以上的地区,HydroSHEDS 数据的质量明显较低,因为没有可用的基础 SRTM 高程数据,因此分辨率较低的 DEM(USGS 提供的 HYDRO1k)。该数据集基于 15 角秒(赤道约 500 米)分辨率栅格数据提供嵌套的分层分水岭多边形。光谱信息和之前不同的点:训练结果。

此星光明博客 966

Struts2 异常处理

Struts2的异常处理机制: 任何成熟的MVC框架都应该提供成就的异常处理机制。Strut2也不例外。Struts2提供了一种声明式的异常处理方式。Struts2也是通过配置的拦截器来实现异常处理机制的。 Struts2的异常处理机制通过在struts.xml文件中配置﹤exception-mapping…﹥元素完成的,配置该元素时,需要指定两个属性: exception:此属性指定该异常

liu_hjiang的专栏 386

27、物联网中的量子密钥分发:安全通信新范式

本文探讨了物联网(IoT)快速发展所带来的安全挑战,并提出量子密钥分发(QKD)作为应对新兴威胁的新范式。文章详细介绍了QKD的基础原理、BB84协议的实现流程以及其在物联网中的应用前景,同时强调了安全专业人员提升技能、制定标准化指南以及跨学科合作的重要性。通过利用量子力学特性,QKD能够提供更高的通信安全性,抵御量子计算等未来威胁,为物联网的安全发展提供保障。

tequila的博客 156

struts1.X总结(50-60)

h1>登录(validator框架客户端验证(javascript))h1>hr>html:javascript formName="loginForm"/> html:form action="login2.do" onsubmit="return validateLoginForm(this)">      username : html:text property="user

pingfanwuzhe的专栏 402

Statistics and Machine Learning Toolbox

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

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

struts2异常处理

Struts2的异常处理机制: 任何成熟的MVC框架都应该提供成就的异常处理机制。Strut2也不例外。Struts2提供了一种声明式的异常处理方式。Struts2也是通过配置的拦截器来实现异常处理机制的。 Struts2的异常处理机制通过在struts.xml文件中配置﹤exception-mapping …﹥元素完成的,配置该元素时,需要指定两个属性: exception:此...

王二北的个人博客 139

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Struts基础概念

StrutsStruts 1.x Struts 2.x不是同一个软件上的升级,它们两个可以说是两个完全不同的框架。Action:每次调用都是new一个新的Action//设置动态方法调用 <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> //设置修改xml立即重新加载 <constant

Mike_ToUp 535

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

struts1.x 校验

h1>登录(validator框架客户端验证(javascript)) username : password : 25、声明式异常 Action中 UserManager.getInstance().login(username, password); ...

mingwei 134

Spring3.x_Struts2.x_Hibernate3.x整合之声明式事务配置

以下的事务是声明在Dao中,但是通常都会在Service中来处理多个业务逻辑的关系,         如:删除,更新等,此时如果在执行了一个步骤之后抛出抛出异常就会导致数据部完整,所以事务不应该在Dao中处理,而应该在Service中处理,         这也是就是Spring提供的一个非常方便的工具,声明式的事务

Sunlight 1993

Struts学习总结

[size=x-small]Struts学习过程中,结合公司项目的情况,有以下心得。 1.Struts的国际化很少用到,但出错处理或异常处理中的提示信息又是需要国际化消息文本中的信息的,这时的处理就是给定一个key value,而value是一个{0},用来装任何出错提示信息,就是出什么错都是new ActionMessage(key,"特定内容");这样子既符合Struts的规范又完成了功能。...

cavonchen的专栏 199

传智播客---Spring 整合 Hibernate 与 Spring 整合 Struts1.x

Spring 整合 Hibernate 与 Spring 整合 Struts1.x 今天佟老师给我们讲3个框架的集成,一共有3种集成方法。每一种都有自己的优点也有缺点!在用时自己喜欢喜欢用就选择哪一种! 1.Spring 整合 Hibernate Spring 支持大多数流行的 ORM 框架, 包括 Hibernate JDO, TopLink, Ibatis 和 JPA。 Spring 对这些 ...

q123inhao的博客 189

Spring、Spring MVC、Struts2、Strut1(转加整理)

SpringSpring是一个轻量级的DI和AOP容器框架。轻量级 轻量级重量级某种程度上是以启动程序需要的资源来决定。比如,EJB启动的时候,需要消耗大量的资源,内存,CPU等,所以是重量级。而Spring则不,所以是轻量级框架。专业点说就是量级主要是看对容器的依赖性所决定的,依赖性越小,越轻量. (本人认为轻量级判断标准,是其初始化时所需的资源多寡、运行或者开发过程中程序依赖框架程度、

worthliu的博客 1129

为什么要用到struts2?

Apache Struts在2000年5月由 Craig McClanahan 发起,并于2001年7月发布了1.0版本。从技术的角度上讲,它是在开发Web 程序上的一次跨越性的进步,但更重要的是,它是在最恰当的时候出现在了人们的眼前。Struts 一出现便大受欢迎,更成为了以后几 年内web开发的实际标准。                   Struts2是Struts的下一代产品。最

Dream_Mr.wang的专栏 830
上一篇: 学习心得(八)
下一篇: Struts1.X个性化异常学习
gwikimo
博客等级 码龄18年 4粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值