Struts2基础与类型转换及错误处理

下载需积分: 10 | TXT格式 | 9KB | 更新于2025-01-08 | 30 浏览量 | 4 下载量 举报
收藏
"struts2基础.txt" 在Java Web开发中,Struts2是一个非常流行的MVC框架,它提供了强大的控制层支持,简化了业务逻辑与视图层的交互。本资源主要介绍了Struts2的基础知识,包括OGNL(Object-Graph Navigation Language)中的类型转换、自定义数据类型转换器、处理表单验证以及错误信息的显示。 1. OGNL与Struts2的类型转换 OGNL是Struts2中用于对象导航和表达式语言,用于在Action和视图之间传递数据。默认情况下,OGNL提供了一个`DefaultTypeConverter`,但有时我们需要自定义类型转换以满足特定需求。Struts2允许我们通过实现`StrutsTypeConverter`接口创建自己的类型转换器,并在需要转换的类或属性上使用注解`@ConversionProperties`指定转换器,例如`PointAction-conversion.properties`。此外,也可以在全局配置文件`xwork-conversion.properties`中注册转换器,例如`com.bean.Point=com.converter.PointConverter`。 2. 表单验证与错误处理 Struts2提供了内置的验证机制,允许我们在Action类中重写`validate()`方法来执行字段级别的验证。例如,当`point`对象为空时,可以通过`addFieldError("point", "point不能为空")`添加一个错误信息。在JSP页面中,我们可以使用`<s:fielderror>`标签来显示这些错误信息。如果未设置默认结果,可以配置`noDefaultResultForAction`来处理验证失败后的返回页面。 3. 复杂逻辑验证 在处理更复杂的验证逻辑时,例如验证生日是否早于毕业日期,可以在Action类中进行比较并添加相应的错误信息。例如,将两个`Calendar`对象`c1`和`c2`分别设置为生日和毕业日期,然后判断`!c1.before(c2)`,如果生日不早于毕业日期,则添加错误信息`this.addFieldError("birthday", "birthday should be before graduation")`。 4. 错误信息国际化 为了实现错误信息的国际化,Struts2提供了配置选项。首先,在`struts.xml`配置文件中添加常量`<constant name="struts.custom.i18n.resources" value="message"/>`,指定资源文件`message.properties`的位置。在`message.properties`文件中,可以定义如`xwork.default.invalid.fieldvalue={0} error`这样的键值对,其中`{0}`代表待转换的字段名。这样,系统会根据当前用户的语言环境加载相应的资源文件,显示对应的错误信息。此外,还可以针对不同的Action创建特定的`properties`文件,以实现不同Action间的差异化错误信息。 Struts2框架提供了丰富的功能来处理数据类型转换、表单验证和错误信息显示,使得开发者能够构建更加健壮且用户友好的Web应用程序。通过理解并掌握这些基础知识,可以更好地利用Struts2进行高效开发。

相关推荐