收藏 分销(赏)

类型转换中的异常处理及资源国际化.doc

上传人:仙人****88 文档编号:8473849 上传时间:2025-02-14 格式:DOC 页数:3 大小:44KB 下载积分:10 金币
下载 相关 举报
类型转换中的异常处理及资源国际化.doc_第1页
第1页 / 共3页
类型转换中的异常处理及资源国际化.doc_第2页
第2页 / 共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配置文件代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <package name="Struts2.0_AddBook" extends="struts-default"> <action name="addUser" class="conv.userAction" method="addUser"> <result name="input">index.jsp</result> </action> </package> </struts> 在这个配置文件中的package包,继承了struts-default.xml文件,而struts-default.xml文件定义了Struts 2.0内建的拦截器,其中就包括我们上面提到的conversionError拦截器。 (3)页面文件index.jsp: <%@page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <s:head/> <body> <br><br> <center> <br> <h2>用户注册</h2> <s:form action="addUser" method="addUser"> <s:textfield name="name" label="用户名称"/> <s:textfield name="age" label="用户年龄"/> <s:submit value="注册"/> </s:form> </center> </body> </html> 为了使程序出现类型转换异常,在用户年龄文本框中输入ABC,然后单击“注册”,使其出现异常。 出现了一条英文提示信息,意思是说“年龄字段输入无效”,这条英文提示信息是Struts 2.0默认的。 资源国际化问题(i18n, 即“internationalization”,国际化) 在中文环境中,我们通常希望看到中文信息,因此需要修改Struts 2.0默认的英文提示信息。 新建一个中文资源国际化文件,是一个文本文件,如文件名为“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知道这个资源文件,内容为: <constant name="struts.custom.i18n.resources" value="globalMessages" /> 运行一下,可以看到中文提示信息的效果。见实例“convError”。 如果看到得是乱码提示,可以试试在转换资源文件时,用把gb2312替换成UTF-8 3
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服