- 浏览: 309783 次
- 性别:
- 来自: 济南
-
文章分类
最新评论
-
z390174504:
恩,确实,我也遇到了,好像是库冲突了,我在一个库项目中,单独引 ...
VerifyError: Error #1053: Illegal override of… -
cl1154781231:
您好,为什么使用tk-filter不用过滤*.gzip???我 ...
ExtJS使用gzip压缩 -
YY008871:
仅限ie下登录成功或失败吗?
单点登录—基于cookie的简单实现(IE) -
蛋的懒蛋:
不好用啊,IE7是运行了,但是就是一启动就报错了,接着就关了 ...
IE7绿色版下载-转载 -
fireinwind:
harman001 写道 ,为什么我的id大写同样没事啊!- ...
Spring配置文件中id的第二个字母不能大写问题
WebWork支持多种方法来判断集合中的对象类型. 这是通过一个 ObjectTypeDeterminer 完成的. WebWork提供了缺省实现. 下面的JavaDocs解释了对Map和Collection的支持是如何在DefaultObjectTypeDeterminer中完成的:
ObjectTypeDeterminer检查 Class-conversion.properties 文件中包含的用于表示Map和Collection中包含的对象类型的相关内容 . 对于Collection, 如List, 使用格式 Element_xxx 来指定其中的元素类型, 这里xxx是action或其他对象中的集合属性名称. 对于Map, 需要按照格式 Key_xxx 和 Element_xxx 分别指定key和value的类型.
从WebWork 2.1.x开始, 仍然支持Collection_xxx这样的书写格式, 尽管这种格式已经被声明废弃而且最终将被去除.
(摘自snippet:id=javadoc|javadoc=true|url=com.opensymphony.xwork.util.DefaultObjectTypeDeterminer)
除此之外, 也可以实现接口ObjectTypeDeterminer来创建自己的定制ObjectTypeDeterminer. WebWork也包含一个可选的使用Java5范型(generics)技术实现的ObjectTypeDeterminer. 更多信息参见J2SE 5 Support.
使用集合的属性索引集合元素(Indexing a collection by a property of that collection)
也可以向WebWork传递元素的某个给定属性的值来获取集合中的唯一元素(element). 缺省情况下, 这个属性由 Class-conversion.properties中定义的KeyProperty_xxx=yyy决定, 这里的xxx是返回集合的JavaBean类型名称, yyy是我们用于索引集合中元素的属性名称. (the property of the element of the collection is determined in Class-conversion.properties using KeyProperty_xxx=yyy where xxx is the property of the bean 'Class' that returns the collection and yyy is the property of the collection element that we want to index on.) 下面的两个类是一个示例:
/** * @return a Collection of Foo objects */ public Collection getFooCollection() { return foo; }
/** * @return a unique identifier */ public Long getId() { return id; }
然后将 KeyProperty_fooCollection=id 放在MyAction-conversion.properties文件中. 这样就可以使用 fooCollection(someIdValue) 从集合fooCollection中获取id等于 someIdValue 的Foo对象. 例如, fooCollection(22) 将得到id值为22的Foo对象.
这一点十分有用, 因为这直接将一个集合中的元素与它的唯一标志符联系起来, 而不需要强制使用索引, 从而允许修改一个Bean的集合中的元素而不需要编写额外的代码. 例如, 值为 Phil 的参数 fooCollection(22).name 将集合fooClooection中id属性值为22的Foo对象的name属性设置为"Phil".
Webwork可以使用类型转换自动将参数的类型转换成key属性的类型.
与Map和List元素的属性不同, 如果fooCollection(22)不存在, WebWork不会创建新的对象. 想要做到这一点, 可以使用符号 fooCollection.makeNew[index], 在这里index是一个整数(0, 1等等). 因此, 参数 fooCollection.makeNew[0]=Phil 以及 fooCollection.makeNew[1]=John 将在fooCollection中添加两个新的Foo对象, 一个name属性值为Phil, 另一个为Bar. 注意, 不管用哪种方法, 在使用Set类型时, 必须定义对象的equals方法和hashCode方法来并保证他们不仅仅包含id属性. 这将导致id属性为null的元素可以从Set中删除.
索引的List和Map的高级示例
下面是一个用于List中的模型bean.
该类的KeyProperty是id属性.
public class MyBean implements Serializable { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return "MyBean{" + "id=" + id + ", name='" + name + '\'' + '}'; } }
下面的action有一个beanList属性, 它被初始化为一个空的ArrayList对象.
ublic class MyBeanAction implements Action { private List beanList = new ArrayList(); private Map beanMap = new HashMap(); public List getBeanList() { return beanList; } public void setBeanList(List beanList) { this.beanList = beanList; } public Map getBeanMap() { return beanMap; } public void setBeanMap(Map beanMap) { this.beanMap = beanMap; } public String execute() throws Exception { return SUCCESS; } }
定义在conversion.properties中的内容告诉TypeConverter使用MyBean的实例作为List的元素.
KeyProperty_beanList=id
Element_beanList=MyBean
CreateIfNull_beanList=true
当通过表单提交到Action时, (id)的值被当作beanList中MyBean实例的KeyProperty.
注意()符号! 不要使用[], 那仅能用在Map里!
属性的name的值将根据指定的id设置到对应的MyBean实例中.
无效的id值将不会再加入null值.
这就避免了OutOfMemory异常的产生!
<ww:iterator value="beanList" id="bean"> <ww:textfield name="beanList(%{bean.id}).name" /> </ww:iterator>
发表评论
-
什么是java序列化,如何实现java序列化? .
2013-04-18 11:38 846Java 串行化技术可以使 ... -
javaMail邮件发送java.lang.SecurityException: Access to default session denied
2012-07-04 15:48 5354{exception=java.lang.SecurityEx ... -
java.lang.ClassCastException: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB
2012-05-12 18:46 1420开发时,向oracle写入blob数据时,如下: ... -
JDBC对CLOB的增修查
2011-09-23 16:06 1180package com.yysoft.a.test; imp ... -
Attribute value request.getAttribute("id") is quoted with " which must be
2009-11-25 12:55 2473<eoms:roomusr id="listU ... -
java中产生随机数
2009-06-23 16:06 1016import java.util.Random; /** * ... -
eclipse 不自动编译java文件的问题
2009-04-08 14:15 1765今天出现了eclipse 不自动编译java文件的问题,在网上 ... -
properties文件编码问题
2009-04-03 11:04 1083在阅读JAVA程序的时候,遇到了一个问题:propertie ... -
Java编程技术中汉字问题的分析及解决
2009-04-03 11:02 965在基于 Java 语言的编程 ... -
EL表达式
2009-04-03 10:56 1478EL语法 EL的语法很简单 ... -
为什么Java不支持创建范型数组?
2008-12-22 11:44 1122http://www.blogjava.net/myqiao/ ... -
每一个JAVA初学者都应该搞懂的问题
2008-12-11 17:25 659对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果 ... -
通过java或jsp向数据库存取二进制图片
2008-11-21 15:55 2622前几天突然看到学校音乐站上的图片原来是存储在数据库上的 ... -
把重要的业务日志异步批量写入数据库
2008-11-17 09:40 25621. 把重要的业务日志异 ... -
Checked vs UnChecked 异常 ,使用场合?
2008-10-24 17:04 3986异常的概念 ... -
文件夹路径 My Documents中包含无效字符的错误
2008-09-09 09:34 3994新装了套xp ghost版系统,d盘莫名其妙的指向了dvd光驱 ... -
FileWriter不能写utf-8
2008-08-01 01:48 6212今天碰到个问题,统计数据,用FileWriter写到unix系 ... -
java写文件方法之比较
2008-07-30 12:39 3303最近对以前开发的一个通用数据迁移的软件进行优化。除了用JDK5 ... -
JSP/Servlet的重定向技术综述
2008-07-28 08:57 1256由于response是jsp页面中的隐含对象,故在jsp页面中 ... -
webwork表单不提交
2008-07-23 09:12 1613现在的项目一直在用webwork,有时会碰到表单不提交的问题, ...
相关推荐
### Collection、Map、List、Set、...以上就是关于 `Collection`、`Map`、`List`、`Set` 和 `Iterator` 的详细解析,这些概念和类是 Java 编程中非常基础且重要的部分,掌握它们有助于更好地理解和使用 Java 集合框架。
在这个框架中,Collection和Map接口及其实现类扮演着核心角色。 1. **Collection接口**: - Collection是所有单值容器的基接口,包括Set和List接口。 - **Set接口**:不允许重复元素,主要实现有HashSet、TreeSet...
在Java编程语言中,`Collection`与`Map`是两种非常基础且重要的数据结构,它们各自具有独特的特性和用途。理解这些数据结构之间的区别对于编写高效、可维护的代码至关重要。 #### Collection `Collection`接口是...
`Collection`和`Map`是Java集合框架的核心组成部分,它们提供了丰富的数据结构实现,方便开发者高效地管理对象。 `Collection`接口是最基础的集合接口,它定义了一个包含零个或多个对象的集合。`Collection`接口的...
本文将深入解析Java集合中的Collection、List、Set和Map,包括它们的使用方法、实现原理以及如何进行排序。 ### 集合框架概述 1.1.1 容器简介 容器是Java集合框架的基础,它是一个可以存储多个对象的容器,提供了...
本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...
- `Collection`接口是所有集合类的根接口,分为`List`和`Set`两大分支。 - `List`接口包括`ArrayList`和`LinkedList`等实现,`ArrayList`适合随机访问,`LinkedList`适合频繁的插入和删除操作。 - `Map`接口用于...
ArrayList提供了按索引访问元素的快速方式,支持添加、删除和修改元素。在案例中,你可以看到如何创建ArrayList,插入元素,遍历列表,以及如何使用增删改查(CRUD)操作。 Iterator接口用于遍历集合中的元素,无论...
本文将深入探讨集合框架的各个组成部分,包括Collection、List、Set和Map,以及它们的特点、常用方法和实现原理。 1. 集合框架概述 集合框架是一组接口和类,它们为数据存储提供了统一的接口和实现。这些接口和类...
CollectionType是一个库,为Collection和Map提供了它们的子类型,这些子类型正在检查PHP的数据集类型。 要求 PHP 5.5.0或更高版本 安装 CollectionType正式仅支持通过Composer进行安装。 有关Composer文档,请参阅 ...
集合框架中的两大主要接口是Collection和Map,V>。在分析这两个接口及其底层实现类的数据结构的区别和联系之前,首先需要了解Java集合框架的构成和各个接口、类的作用。 Collection接口是单列集合的根接口,它包含了...
在Groovy编程语言中,Map是一种非常重要的数据...总的来说,Groovy中的Map提供了灵活的数据存储和访问机制,支持多种操作方式,使其成为处理键值对数据的强大工具。了解这些基本操作对于高效地编写Groovy代码至关重要。
集合框架包括了多种接口和类,如Collection、List、Set、Map等,它们各自有特定的功能和用途。 1. **集合框架概述** - **容器简介**:集合框架就是一组接口和类,它们定义了存储、检索和操作对象的标准方式。这些...
本篇文章将深入探讨名为"css-effect-map-collection-master.zip"的资源包,它是一个收集了多种美观CSS效果的集合,对于提升WebUI组件和框架的设计感具有重要意义。 首先,我们来看这个压缩包的名称——"css-effect-...
- **迭代器**:Collection的迭代器(Iterator)是遍历集合元素的主要方式,它支持next()和hasNext()方法来访问和移除元素。 3. **List** - **概述**:List接口继承自Collection,它是一个有序的容器,元素可以...
本文将深入探讨Java集合框架的四大核心组件:`Collection`、`List`、`Map`和`Set`,以及它们的排序方法。 ### 1. 集合框架概述 #### 1.1.1 容器简介 在Java中,容器(Containers)是用来存储和管理对象的结构。...
### Java集合排序及java集合类详解(Collection、...以上是对Java集合框架中的`Collection`、`List`、`Set`和`Map`的详细介绍,涵盖了它们的基本概念、常用方法、实现原理等方面,希望对理解和使用Java集合有所帮助。