
类型转换中的异常处理及资源国际化.doc
3页Struts2的类型转换异常处理在视图页面中,用户的输入是很复杂的,偶然的输入错误或者恶意输入都会导致程序异常因此,必须对用户输入的数据进行校验例如,年龄信息必须是整数,一但用户输入了一个ABC,这时就需要进行数据类型校验Struts 2.0提供了类型转换异常处理机制,使用的是一个名字为conversionError的拦截器,这个拦截器被注册在默认的拦截器栈中如果Struts 2.0在类型转换过程中出现问题,这个拦截器就会进行拦截,并将异常信息封装成一个fieldError对象在视图页面上显示出来整个过程无须我们参与,Struts 2.0的类型转换器和conversionError拦截器会自动实现一) 简单类型转换异常主要是处理一些String、int、Date等数据类型之间的转换异常见例子“convError”,一个用户注册的功能:(1)Action的代码:package conv;import com.opensymphony.xwork2.ActionSupport;public class userAction extends ActionSupport{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String addUser() { return SUCCESS; }}从上述代码中我们可以看到该Action仅,包含了name和age两个属性,其中age属性是int类型的。
2)strust.xml配置文件代码:
3)页面文件index.jsp:<%@page language="java" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%>
用户注册
新建一个中文资源国际化文件,是一个文本文件,如文件名为“a”,在该文件中添加如下一条代码:xwork.default.invalid.fieldvalue=所输入数据的类型不符合要求!用记事本在某处建好a文件,然后用“native2ascii”命令把这个源文件转化为中文资源国际化文件,转化后的资源文件名必须为“globalMessages_zh_CN.properties”Zh表示中文,CN表示中国,扩展名properties表示资源文件在DOS窗口用转化命令,为:native2ascii –encoding gb2312 a globalMessages_zh_CN.properties然后复制文件globalMessages_zh_CN.properties,再到MyEclipse中右击“src”,用“Paste”,把它放在与struts.xml同级别位置最后,在配置文件中添加一个constant语句,让struts知道这个资源文件,内容为:
见实例“convError”如果看到得是乱码提示,可以试试在转换资源文件时,用把gb2312替换成UTF-83。












