- 浏览: 27448 次
- 性别:
- 来自: 潍坊
文章分类
最新评论
-
赤木晴子:
垃圾 没有jar包
struts2 velocity -
duronshi:
弱弱问下,如果我不用struts的标签<s:form而用 ...
struts2 基本校验 -
java_vm:
hyx0914 写道呵呵,这样写的话为什么不在前台页面就验证了 ...
struts2 基本校验 -
hyx0914:
呵呵,这样写的话为什么不在前台页面就验证了呢?
struts2 基本校验 -
chrislee1982:
还用这种方式验证?难道不知道可以使用xml配置或者annota ...
struts2 基本校验
在Web项目开发中由于很多数据在页面上显示时候都是以字符串类型来显示。而在控制层或者model层中开发人员使用Java开发时候,对于这些从页面上传入或者需要传到页面上显示的数据开发的类型不一定都是字符串类型。因此常常需要在视图和非视图之间进行类型转换
Struts2本身所具有的类型转换功能。大致分为以下: l int、boolean、double等Java基本类型转换。 l Date类型转换。 l List类型转换。 l Set类型转换。 l 数组类型转换 基本数据类型转换功能 在页面上输入一个Material对象的所有属性值,并将它的属性值显示在页面上。由于之前很多示例中已经有过Material这个JavaBean对象代码。这里就没有写出给读者参阅。由以显示的示例代码也可知,Material对象由材料名、价格、库存量和材料过期日期四个属性组成。恰好这四个属性的数据类型分别是String、double、int、date四个Java类型,因此由该示例可以明白Struts2的类型转换是如何转换这些Java类型。由于Struts2也是使用拦截器来进行类型转换,因此对这些基本的Java类型转换根本不需要开发人员编写任何类型转换代码 在输入数据的页面,笔者使用OGNL和Struts2标签来建立一个数据输入的表单。使用的material对象在Action中已定义完成,并建立getter、setter方法。这样在JSP页面可以设置该对象。在页面中按“提交”按钮后,就相当于“setMaterial()”方法。在系统根据struts.xml配置文件执行Action之前,Struts2自带的类型转换拦截器就已经将Material对象中几个属性变量的类型由页面上输入时候的String类型转换为Material对象属性变量被定义的数据类型 在数据显示页面上显示数据时候,实际上做的事情是上述操作的一个逆向操作。Material对象中每个属性变量的数据类型又都转换为页面上需要显示的String类型 List集合类型数据类型转换功能 public class AddMaterialAction extends ActionSupport { private List<Material> materialList; public String execute() throws Exception { return SUCCESS; } public List<Material> getMaterialList() { return materialList; } public void setMaterialList(List<Material> materialList) { this.materialList = materialList; } }
该属性文件属于局部类型转换属性定义文件。文件名要以ActionName打头,然后以“--conversion.properties”结尾。这表示是对该Action中的List集合类型指定元素类型。而且该属性文件一定要和Action放在同一目录下。否则运行系统时候Struts2是不会知道该Action的List集合类型变量元素是何种类型对象 试设想有一种情况,多个Action都需要将某一变量的类型进行转换。此时可以像之前所述使用属性文件来定义被转换类型的变量。但是1个Action定义1个属性文件则太浪费时间。因此Struts2中还有个全局类型转换属性定义文件,这样所有需要类型转换的Action都可以调用该文件中定义的需要类型转换的变量。全局属性文件名字必须为“xwork-conversion.properties”。文件中定义的内容其实和局部属性文件中大同小异,只是这些被定义的变量可以在所有Action中进行类型转换。全局属性文件没必要和具体Action代码文件放在一起,只需要放在源代码根目录下即可。也就是说全局属性文件直接放在“src”文件夹下即可
Set集合类型数据类型转换功能
<!-- 材料数据显示 --> <table> <tr> <td>材料名</td> <td>价格</td> <td>库存量</td> <td>过期日期</td> </tr> <s:iterator value="materialSet" status="m"> <tr> <td><s:property value="material" ></s:property></td> <td><s:property value="bid" ></s:property></td> <td><s:property value="mount" ></s:property></td> <td><s:property value="expireDate" ></s:property></td> </tr> </s:iterator> </table>
像List集合类型示例一样笔者定义了一个Set集合类型变量materialSet。不过该变量必须显示定义它的类型。如代码中所示“new HashSet()”一样。这是必须的,否则Struts2不知道该变量是哪一种Set集合
属性文件中除了继续定义元素对象类型之外,还需要定义该集合类型变量的索引即代码中所示的“KeyProperty_materialSet=material”。其实定义索引的通用格式为“KeyProperty_SetName=属性”。也许有的读者很难理解,其实也不很难。首先在Action中定义的Set集合类型变量名要写在“KeyProperty_”之后。然后“=”后面写的是元素对象中开发者想指定为索引的属性。比如示例中元素对象是Material对象。该对象有几个属性,其中有个属性为“material”是代表Material对象的材料名字,就把它定义为索引。这里笔者的定义想表明的意思就是materialSet这个Set集合类型变量的索引是组成它的元素Material对象中的material属性。如果属性文件中写成“KeyProperty_materialSet=bid”则表明把Material对象中表示材料价格的bid属性作为materialSet的索引
在数据输入的JSP页面中,笔者使用了OGNL中的“makeNew”API。由它来建立materialSet中的material对象。然后依次输入material对象各个属性数据
- Struts2_14_type_conversion_.rar (9.4 KB)
- 下载次数: 54
- Struts2_15_type_conversion_list_.rar (10.1 KB)
- 下载次数: 60
- Struts2_16_type_conversion_set_.rar (10.3 KB)
- 下载次数: 73
发表评论
-
struts2 与 jfreechart的整合
2010-07-26 09:00 1430显示效果: 先引入相关的jar包: jcommon- ... -
struts2 以注解的形式实现拦截器
2010-07-26 08:48 867package com.example.struts.acti ... -
struts2 国际化(中英文切换 占位符)
2010-07-26 08:13 2150package com.example.struts.acti ... -
struts2 基本校验(配置文件形式)
2010-07-26 07:56 1254利用配置文件进行校验主要是增加了一些xml文件来对具体表单 ... -
struts2 基本校验
2010-07-26 07:26 1020Struts2对输入校验这方面采用的最基本方 ... -
struts2 全局异常提示定义属性文件使用
2010-07-25 15:30 1218#类型转换提示 xwork.default.invalid. ... -
struts2 freemarker
2010-07-25 14:32 1824freemarker和velocity一样也是一种可以 ... -
struts2 velocity
2010-07-25 14:00 1897velocity翻译成中文就是“速度”的意思,它 ... -
struts2 表单标签的使用
2010-07-25 13:39 1315combobox标签 ... -
struts2 OGNL 表达式及各种标签的使用
2010-07-25 13:24 2109Struts2中将 ... -
struts2 文件的上传和下载
2010-07-25 12:54 2124在Web项目中导入支持文件上传下载和IO输入输出的两个 ... -
struts2 拦截器的使用(继承方法拦截器)
2010-07-24 16:02 1906import com.opensymphony.xwork2. ... -
struts2 拦截器的使用(继承抽象拦截器)
2010-07-24 15:51 1146import com.opensymphony.xwork2. ... -
struts2 type 常量
2010-07-24 15:43 891Type类型值 作用说明 对应类 ... -
struts2学习总结( 使用ActionSupport进行校验)
2010-07-24 15:29 1501= Action类中ActionSupport使用 ... -
Strut2 学习总结(1)基本配置
2010-07-24 11:05 903开发所必备的基本jar包: struts2- ...
相关推荐
Struts2是一个流行的Java web开发框架,其核心是Action,而类型转换是Struts2处理用户输入数据的一个重要环节。Struts2内置了多种类型转换,可以将HTTP请求中的字符串数据转换为各种基本类型和复杂类型,如日期、...
在Struts2中,类型转换器(Type Converter)是框架的一个关键特性,用于处理Action类中属性的自动类型转换。这个特性使得开发者无需手动进行数据类型之间的转换,从而提高了开发效率和代码的可读性。 标题中的...
本篇文章将深入探讨Struts2中的类型转换机制。 1. **类型转换的概念** 类型转换是指将一个数据类型的值转换为另一个数据类型的过程。在网络请求中,用户输入的数据通常是字符串类型,而服务器端的Action类属性可能...
Struts2是一个强大的MVC框架,它在处理Web应用程序时提供了许多便利,其中包括类型转换功能。类型转换是将用户输入的数据自动转化为服务器端处理所需的类型,这样可以避免手动转换带来的繁琐工作。本篇文章将深入...
在Struts2中,类型转换和国际化是两个重要的特性,用于处理数据类型之间的转换以及多语言环境下的内容显示。 **类型转换**是Struts2处理请求参数与Action类属性之间数据类型不匹配的过程。当用户通过表单提交请求时...
Struts2提供了一些工具类和方法来辅助类型转换,比如`FieldError`用于记录转换失败的字段和错误信息,`ValueStack`提供了`convertValue`方法进行转换,以及`ActionContext`中的`getValueStack`方法获取当前栈顶的`...
### Struts2类型转换与验证流程详解 #### Struts2框架概述 Struts2是一个用于构建企业级Java Web应用的强大框架。它集成了MVC设计模式,并提供了丰富的插件支持和灵活的配置选项。在Struts2中,类型转换和验证机制...
在这个"struts2简单实例(类型转换)"中,我们将探讨Struts2如何处理不同类型的数据转换,以及如何创建一个简单的演示应用。 首先,让我们理解什么是类型转换。在Web应用程序中,用户通过表单提交的数据通常是字符...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...
struts2类型转换机制
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
熟悉和掌握Struts2自定义类型转换。 熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个...
Struts2是一个强大的MVC框架,它在处理用户请求时提供了丰富的功能,其中包括类型转换(Converter)。类型转换是Struts2框架中一个重要的特性,它允许我们把前端表单提交的数据自动转换为后端Java对象的属性。在这个...
2. **自定义转换器**:如果需要处理特殊类型或有特定转换规则,可以通过实现`org.apache.struts2.util.TypeConverter`接口创建自定义转换器,并通过`@Result`注解或者`struts.xml`配置文件进行注册。 3. **转换异常*...
《STRUTS2类型转换错误导致OGNL表达式注入漏洞分析》 STRUTS2框架在处理用户输入时出现的类型转换错误,可能导致OGNL(Object-Graph Navigation Language)表达式注入漏洞。此漏洞允许攻击者通过精心构造的输入,...
在Struts2中,类型转换是一项关键功能,它允许框架将用户输入的数据自动转换为应用程序需要的特定数据类型。这篇博客文章可能是关于Struts2内部的类型转换机制及其使用的探讨。 在Struts2中,类型转换是通过`...