struts2类型转换中的错误处理

本文介绍Struts2框架中类型转换异常处理机制的工作原理及配置方法,并演示如何通过配置实现自定义错误提示。

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

由于类型转换过程中有可能出现原始参数无法转换为目标类型的错误,所以struts2提供了类型转换中的异常处理机制。

在struts2的默认配置文件struts-default.xml中有如下一段配置代码

<interceptors>
        <interceptor-stack name="defaultStack">
            <interceptor-ref name="conversionError"></interceptor-ref>
            <interceptor-ref name="validation">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
        </interceptor-stack>
    </interceptors>

该拦截器负责将对应错误封装成表单域错误(FieldError),并将这些错误信息放入ActionContext中。然后系统会跳转到名为input的逻辑视图。如果struts的配置文件中配置了该逻辑视图指向的物理视图,就跳转入对应的物理视图,如没有配置,则根据约定跳转入/WEB-INF/content/input.jsp。在input.jsp中使用struts2的标签<s:fielderror/>则可以在页面上输出错误信息。

1.默认情况下,输出内容:Invalid field value for field 属性名 

在国际化资源文件中增加

xwork.default.invalid.fieldvalue=[0]字段类型转换失败!

则可以将默认提示修改为“=”后面的内容。

2.在某些时候,可能还需要对特定字段指定特定提示信息,则可通过ActionName.properties局部资源文件实现,在文件中增加

invalid.fieldvalue.<propName>=<tipMsg>

例如:invalid.fieldvalue.user.age=年龄必须是数字!

则在年龄字段转换失败时提示“=”后面的内容

转载于:https://www.cnblogs.com/yoran-yang/p/5167429.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值