【开博第一篇】Struts 1.x下的自动异常处理、国际化处理

本文介绍如何在Struts框架中实现自定义异常处理机制和国际化功能。通过定义异常类和异常处理类,实现自动异常捕获及处理流程。同时,通过过滤器实现了根据浏览器语言设置动态切换国际化资源。

我技术浅薄,可写的东西实在太少,今天刚好搭建了一下开发框架,就把这些写出来共享,顺便留作以后参考。

 

转载请申明原创作者【selfimpr】。

 

涉及的问题主要有两个:

1. 自动异常处理:struts支持的配置异常处理,采用自己定义的异常处理系统中的所有自定义异常。

2. 国际化:一时半会想不出怎么解释,自己查查吧。

 

首先,看自动异常处理:

先定义自己的异常类

 

定义自己的异常的处理类.

 

在struts-config.xml文件中配置异常的处理方式:

这里不要忘记最底下指定国际化资源文本的名字哦

这样异常处理的"后台就做完了"

定义好我们需要的测试页面之后,在action中的调用中,我们模拟一个异常:

让我们来看看MessageResource.properties中的内容(MessageResource.properties放到类路径下就可以了,也就是我们开发的时候的src目录,部署之后的/WEB-INF/classes目录), 不用关注其他的信息,看我用# here标注的那几个我们用到的那几行.

这样,我们在最后的异常转向页面,也就是error.jsp中用一句<html:errors />就可以拿到异常信息了

注意,在error.jsp中使用<html:errors />标签的时候需要引入相关的taglib

<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>

 

 

其实上面已经涉及了国际化的处理了,但是,我在做国际化处理的时候,发现我改了浏览器的语言,他也给我不变.

我就做了一个filter

下面具体看看我的国际化处理方式:

首先,定义我们的国际化过滤器,主要是用来获取浏览器中定义的语言选项,然后设置到struts中,让struts获取相应的国际化资源文本.

在web.xml中配置这个filter的时候,采用/*配置uri-pattern就可以了,让它去过滤所有的请求.

 

这样,就已经基本完工了,具体的其他代码,可以看看我上传的这个项目的源码.

地址在:http://download.youkuaiyun.com/source/1162430.

 

另外,提一个思路:

对于国际化而言,用户往往并不是希望固定的看浏览器语言设定的那一种语言的.这样,我们其实可以像google那样让用户可以选择语言.

这个的实现思路是:

用一个ThreadLocal保存每个用户选择的Locale信息,还是用过滤器.

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值