struts2基础.txt
根据提供的文件信息,我们可以从标题、描述以及部分给出的内容中提炼出有关Struts2框架的基础知识点。以下是对这些信息的详细解析与扩展: ### Struts2框架基础 #### 一、Struts2中的类型转换机制 Struts2框架提供了一种强大的类型转换机制,能够自动将请求参数转换为Action类属性的类型。这一机制主要通过两个核心组件来实现:`DefaultTypeConverter` 和 `StrutsTypeConverter`。 - **`DefaultTypeConverter`**:负责处理基本类型的转换。 - **`StrutsTypeConverter`**:则用于处理更复杂的对象类型转换,如日期、自定义对象等。 为了更好地支持类型转换,Struts2允许开发者通过配置文件来指定特定类型的转换规则。具体来说,可以利用 `conversion.properties` 文件来定义转换逻辑,例如: ```properties # conversion.properties 示例 com.bean.Point=com.converter.PointConverter ``` 这行配置意味着,当Struts2遇到名为 `Point` 的类型时,会使用 `PointConverter` 类来进行转换。 此外,在实际应用中还需要注意的一点是,如果某个Action没有默认的结果视图,则需要在配置文件中进行相应的处理,以避免运行时出现错误。 #### 二、Action的验证机制 Struts2提供了一个强大的验证框架,它可以通过多种方式来实现对Action数据的验证,包括在Action类中直接实现 `validate()` 方法、通过XML文件来定义验证规则等。 - **在Action类中实现 `validate()` 方法**: ```java public void validate() { if (null == point) { addFieldError("point", "点坐标不能为空"); } } ``` 在这里,我们通过调用 `addFieldError` 方法来添加字段级别的错误信息。 - **在JSP页面中展示错误信息**: ```jsp <s:fieldError fieldName="point"/> ``` - **Struts2内置的输入结果视图**:如果验证失败,Struts2会自动转向一个名为 `input` 的结果视图,通常用来显示表单并呈现验证错误信息。 - **无默认结果的处理**:当Action没有默认的结果时,Struts2会抛出异常。为了避免这种情况,可以在配置文件中为每个Action指定至少一个默认结果。 #### 三、日期类型转换与验证示例 在某些场景下,可能需要对日期类型的数据进行转换与验证。例如,确保用户的出生日期早于毕业日期,可以采用以下方法: ```java public void validate() { Calendar c1 = Calendar.getInstance(); c1.setTime(birthday); Calendar c2 = Calendar.getInstance(); c2.setTime(graduation); if (!c1.before(c2)) { addFieldError("birthday", "出生日期应该早于毕业日期"); } } ``` 这里首先获取当前时间的实例,然后分别设置为用户的出生日期和毕业日期,最后比较两个日期的先后顺序。 #### 四、国际化资源文件的配置 为了使应用程序支持多语言环境,Struts2提供了国际化支持。具体来说,可以通过配置文件来指定国际化的资源文件,例如在 `struts.xml` 文件中配置: ```xml <constant name="struts.custom.i18n.resources" value="message"/> ``` 然后,在类路径下创建 `message.properties` 文件来存储各种语言版本的消息: ```properties # message.properties 示例 xwork.default.invalid.fieldvalue={0} 错误 ``` #### 五、基于XML的验证规则 除了在Action类中直接实现 `validate()` 方法外,还可以通过XML文件来定义验证规则。例如,在 `PointAction-validation.xml` 文件中定义验证逻辑: ```xml <!DOCTYPE validators PUBLIC "-//Apache Software Foundation//DTD Struts Validator 1.0.2//EN" "http://struts.apache.org/dtds/struts-validator-1.0.dtd"> <validators> <field name="age"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>年龄不能为空</message> </field-validator> </field> </validators> ``` 这里定义了对 `age` 字段的验证规则,要求该字段不能为空,并指定了错误消息。 Struts2框架提供了一系列强大的特性来支持Web开发,包括类型转换、验证机制以及国际化支持等。通过对这些特性的合理利用,可以大大提高开发效率和代码质量。
- 粉丝: 3
- 资源: 25
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- js-leetcode题解之141-linked-list-cycle.js
- js-leetcode题解之140-word-break-ii.js
- js-leetcode题解之139-word-break.js
- js-leetcode题解之138-copy-list-with-random-pointer.js
- js-leetcode题解之136-single-number.js
- js-leetcode题解之135-candy.js
- js-leetcode题解之134-gas-station.js
- 基于tensorflow的道路桥梁裂缝检测应用源码
- 多台设备循环控制仿真和代码protues仿真
- 多台设备循环控制原理图