Struts2讲义33(转载)

本文介绍在Struts2框架中如何处理类型转换异常,包括使用Struts2自带异常提示、局部及全局属性文件定义错误提示等方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7.2  类型转换发生异常处理方案

类型转换说明白点也就是调用某些 Struts2 已经定义的 Java 代码。不过只要由 Java 这门语言书写的程序都不可避免异常处理。因此万一在类型转换中发生异常,必须要快速解决它。本节就介绍笔者日常中对类型转换的异常进行处理的一些办法和方案。

7.2.1   Struts2 自带异常提示

技术要点

Struts2 自带对于类型转换发生异常错误时候提示。

无任何操作时的错误提示。

输入 fielderror 标签时的错误提示。

演示代码

使用 7.1.1 示例代码没有进行任何数据异常处理时候数据输入如图 7.7

7.7  各种基本类型数据输入

输入价格类型为字符串类型,而价格类型其实是 double 类型。此时错误提示如图 7.8

7.8  价格类型输入错误图

引入 Struts2 标签 fielderror 的数据输入 JSP 代码:

Java代码 复制代码
  1. <!------------------------文件名:addMaterial.jsp------------------->   
  2. …………   
  3.          <s:fielderror/>   
  4. …………  
<!------------------------文件名:addMaterial.jsp------------------->
…………
         <s:fielderror/>
…………
 

引入标签后类型转换错误的提示如图 7.9

7.9  引入标签 fielderror 后价格类型输入错误图

代码解释

1 )本节代码大致和 7.1.1 代码类似。在没有引入 fielderror 标签之前。笔者只是简单的把 7.1.1 代码 copy 过来,没有增加任何代码。当在数据输入页面,输入的价格数据为字符串类型数据。由于类型转换时候,价格作为 Material 对象的一个属性,它的 Java 代码定义的类型是 double 类型,因此如果页面上输入的价格不是数字组成的,则转换类型时候必定会发生类型转换异常。此时 Struts2 自带的处理类型转换异常的机制就会如图 7.8 显示红色的错误提示信息和出错的数据输入框提示。

2Struts2 本身还有个提示表单中 field 输入错误的提示标签。该标签名字为“ fielderror ”,具体写法如代码中所示。之所以在前面介绍 Struts2 标签的章节中没有记述该标签,只是因为很多 Struts2 标签有特定的使用意义和使用场合,因此在介绍 Struts2 其他部分时候会顺便介绍这些有特殊使用场合的标签。

如图 7.9JSP 代码中加了该标签后,显示的错误提示信息是在页面头部分。也就是说 fielderror 标签在页面上引入后,显示的错误提示除了显示位置不同之外,其他都是和不引入标签时候 Struts2 自带提示类型转换错误提示是相同的。

注意:错误提示中的“ material.bid ”是 JSP 中定义的价格这个 field name

7.2.2   Struts2 局部异常提示定义属性文件使用介绍

技术要点

定义局部属性文件,在该文件中定义类型转换发生异常时的错误提示。

局部属性文件定义。

演示代码

局部属性文件代码:

Java代码 复制代码
  1. <!----------------------文件名:AddMaterialAction.properties--------------->   
  2. #Action属性类型转换错误提示   
  3. invalid.fieldvalue.material.bid=材料价格非法输入  
<!----------------------文件名:AddMaterialAction.properties--------------->
#Action属性类型转换错误提示
invalid.fieldvalue.material.bid=材料价格非法输入
 

 

异常错误提示如图 7.10

7.10  价格类型输入错误图

代码解释

1 )如同之前类型转换属性文件定义一样,在和 Action 文件同目录下定义了名为“ ActionName.properties ”的属性文件,在该属性文件中对类型转换错误的属性进行定义。其中“ material.bid ”就是输入数据的 JSP 页面中定义的 fieldname 。而“ invalid.fieldvalue ”则是固定不变的格式。这样设置后,系统就会在发生类型转换错误时候在页面上显示属性文件中定义的类型转换错误提示信息。不会显示之前使用 fielderror 标签时候显示的提示信息。

7.2.3   Struts2 全局异常提示定义属性文件使用介绍

技术要点

定义全局属性文件,在该文件中定义类型转换发生异常时的错误提示。

全局属性文件定义。

演示代码

全局属性文件代码:

Java代码 复制代码
  1. <!-----------------文件名:messageResource.properties------------------>   
  2. #类型转换提示   
  3. xwork.default.invalid.fieldvalue={0}类型转换错误~~~  
<!-----------------文件名:messageResource.properties------------------>
#类型转换提示
xwork.default.invalid.fieldvalue={0}类型转换错误~~~
 

 

异常错误提示如图 7.11

7.11  价格类型输入错误图

代码解释

1 )在源代码根目录下笔者定义了名为“ messageResource.properties ”的属性文件,该文件是用来显示国际化目的而使用的属性文件。但关于类型转换的错误定义也可以在该属性文件中定义。这样在所有 JSP 页面中只要有有关于 Material 对象的 bid 属性的输入类型转换都可以调用该属性文件中对 bid 属性类型转换异常提示的信息。

注意:属性文件中的“ {0} ”其实是占位符号,如果有多个属性的类型转换有异常发生,可依次以“ {0} ”,“ {1} ”这样定义多个属性。然后这些属性名会自动一一对应于属性文件中的定义。比如该示例中是“ material.bid ”则“ {0} ”中代表的就是它。所以在异常信息提示的页面上显示的是“ material.bid 类型转换错误”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值