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>
 
Mcgs 屏幕Modbus RTU通讯调试 昆仑通态屏幕作为Modbus Master 与 Modbus Slave通过RS485接口实现通信的调试记录 阅读详情

相关推荐

一觉醒后ChatGPT 被淘汰了

近日,AI 界貌似出现了一种新的趋势:自主人工智能。这不是空穴来风,最近一个名为 AutoGPT 的研究开始走进大众视野。特斯拉前 AI 总监、刚刚回归 OpenAI 的 Andrej Karpathy 也为其大力宣传,并在推特赞扬:「AutoGPT 是 prompt 工程的下一个前沿。」

Rocky006的博客 13万+

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

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

ajjjian 141

TBOX(Telematics Box)在智能网联汽车中的核心功能与应用场景解析

TBOX(Telematics Box)是智能网联汽车的“中枢神经”,基于Android或Linux操作系统,并通过CAN总线与车辆深度交互。它实现了远程控制、车辆状态监控、OTA升级及紧急呼叫(E-CALL)等核心功能,是提升用车安全、便利性与实现车辆持续进化的关键技术组件。

weixin_29158413的博客 804

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

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

weixin_34101784的博客 104

对话系统简介

《文本上的算法》学习笔记1、问答型1.1、基于语义分析的方法1.2、基于信息抽取的方法1.3、端对端的方法2、任务型2.1、生成式模型( Generative Model )2.2、判别式模型( Discrimitive Model )2.3、规则系统3、闲聊型3.1、规则方法3.2、生成模型3.3、检索方法 个人认为NLP领域最难的方向可以说是阅读理解与文本生成/摘要,而对话系统,尤其是闲聊常常...

盘一哈nlp 6752

车载软件架构 -- SOA服务分层设计原则

摘要: 本文系统阐述了车载SOA(面向服务架构)的核心价值与分层设计原则。传统汽车软件架构因功能耦合度高、升级困难等问题难以适应智能汽车发展需求,而SOA通过服务化设计实现模块化解耦,支持跨域协同与生态开放,显著提升开发效率和可维护性。文章详细解析了服务分层策略(原子服务、基础服务、应用服务)及其设计原则:原子服务作为最小功能单元实现硬件抽象;基础服务整合原子服务提供通用能力;应用服务面向具体业务场景。分层架构有效降低了系统复杂度,使各层可独立演进,为智能汽车软件生态建设提供了方法论支撑。

Soly_kun的博客 727

java异常,struts2异常处理

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

ycd19880511的专栏 192

数据资产入表——解读100页数据资产入表解读与分析【附全文阅读】

本文档《数据资产入表:解读与分析》面向企业财务、数据管理、法务合规及高管等核心岗位,系统解析数据资产入表全流程。以"政策-实操-价值"为主线,首先解读入表政策要求,明确会计处理规范;其次详细拆解数据盘点、治理、确权、评估等实操步骤,提供行业案例参考;最后分析入表难点及后续运营策略,为企业提供从政策理解到落地执行的一站式解决方案。

cdfunlove的博客 392

Struts1.x 总结(很全面)

Struts-概览(待续)

孙晴 2015

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

766

QT实现MQTT服务端(附完整源码)

QT实现MQTT服务端(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1253

Struts2 异常处理

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

liu_hjiang的专栏 386

使用PostgreSQL构建高可用数据库集群

在现代企业级应用中,数据库的高可用性已成为业务连续性的核心要求。PostgreSQL作为一款功能强大的开源关系型数据库,其高可用架构的设计直接影响着系统的稳定性和可靠性。

九天的专栏 1258

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

struts2异常处理

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

王二北的个人博客 139

蓝牙模块HM-10手册

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

Struts基础概念

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

Mike_ToUp 535

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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、付费专栏及课程。

余额充值