`
wsql
  • 浏览: 11758872 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

转载请申明原创作者【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.csdn.net/source/1162430.

另外,提一个思路:

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

这个的实现思路是:

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics