- 浏览: 7339048 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在项目使用一个下拉框绑定或单选或复选框的绑定的应用:
在struts2.0中一个复选库可以选中多个但是真正的保存的只是数据而非enum对象。
在工具类中编写一个类实现枚举对象值和数据库对象的绑定:
public abstract class PersistenceUtils {
/**
*
*/
private static final String DEFAULT_ENUM_IDENTITY_PROPERTY = "code";
/**
*
*/
public static final String SEPERATOR = ",";
public static <T extends Enum<T>> List<T> getEnumsAsList(Class<T> enumClass, String identityProperty, String enumString) {
if (StringUtils.isBlank(enumString)) {
return new ArrayList<T>();
}
List<T> enumList = new ArrayList<T>();
String[] fragments = StringUtils.split(enumString, SEPERATOR);
try {
for (String fragment : fragments) {
Field identityField = BeanUtils.getDeclaredField(enumClass, identityProperty);
enumList.add(EnumUtils.fromEnumProperty(enumClass, identityProperty,
ConvertUtils.convert(fragment, identityField.getType())));
}
} catch (NoSuchFieldException e) {
ReflectionUtils.rethrowRuntimeException(e);
}
return enumList;
}
public static <T extends Enum<T>> List<T> getEnumsAsList(Class<T> enumClass, String enumString) {
return getEnumsAsList(enumClass, DEFAULT_ENUM_IDENTITY_PROPERTY, enumString);
}
@SuppressWarnings("unchecked")
public static <T extends Enum<T>> String getEnumsToString(Class<T> enumClass, final String identityProperty, List<T> enums) {
if (CollectionUtils.isNotEmpty(enums)) {
Collection<String> enumStrings = CollectionUtils.collect(enums, new Transformer() {
@Override
public Object transform(Object input) {
try {
Object identity = BeanUtils.getDeclaredFieldValue(input, identityProperty);
return ConvertUtils.convert(identity, String.class);
} catch (NoSuchFieldException e) {
ReflectionUtils.rethrowRuntimeException(e);
//never to here
return null;
}
}
});
return StringUtils.join(enumStrings, SEPERATOR);
}
return null;
}
public static <T extends Enum<T>> String getEnumsToString(Class<T> enumClass, List<T> enums) {
return getEnumsToString(enumClass, DEFAULT_ENUM_IDENTITY_PROPERTY, enums);
}
}
在使用是如下:
将得到的枚举字符串voteTypes,转换为所需的枚举对象集合
public List<FunTicketType> getVoteTypeAsList() {
return PersistenceUtils.getEnumsAsList(FunTicketType.class,
this.voteTypes);
}
将枚举集合转换为所需的枚举字符串
public void setVoteTypeAsList(List<FunTicketType> voteTypeAsList) {
this.voteTypes = PersistenceUtils.getEnumsToString(FunTicketType.class,
voteTypeAsList);
}
在struts2.0 的IOC功能的强大也就显示出来了:
Model层的Set方法注入:
在jsp页面中实现如下:
单选组:
<s:radio name="entity.tableType"
list="@com.unutrip.user.model.enums.DinnerType@values()"
listKey="code" listValue="name" />
下拉框:
<s:select name="entity.noticeType"
list="@com.unutrip.user.model.enums.NoticeModeType@values()"
listKey="code" listValue="name" />
复选框:
<s:checkboxlist name="entity.voteTypeAsList"
list="@com.unutrip.user.model.enums.FunTicketType@values()"
listKey="code" listValue="name" />
发表评论
-
整合Struts2+JasperReport Web报表应用示例
2013-04-22 13:56 2288整合Struts2+JasperReport Web报表应用 ... -
Struts2+JFreeChart制作图标
2011-11-26 13:52 2101前言 关于Struts2入门以及提高等在这里就不介绍了 ... -
Struts2.0中获取项目的上下文的两种方式
2010-01-19 13:42 3287Struts2.0中获取项目的上下文的两种方式 方 ... -
Struts2.0中通过OGNL访问常量必须注意的一个配置
2010-01-19 13:34 2629在项目的开始阶段,由于没有学习Struts2.0中OGNL的 ... -
Struts2.0 中值栈的实现以及解析OGNL以及值堆栈的原理
2010-01-14 13:19 4669OGNL的值栈实现的堆栈动态OGNL的表达式。何时设置 ... -
关于Struts2.0 标签中采用%{}%的处理原理
2010-01-14 13:08 2710项目中采用struts2.0 ... -
struts 2配置文件解说
2010-01-13 13:09 1402struts 2框架有两个核心配置文件: struts.xml ... -
struts2.0的ognl表达式 研究
2010-01-13 13:05 2659OGNL —— 完美的催化剂 为了解决数据从 ... -
Struts2和OGNL
2010-01-13 10:57 2066OGNL是XWork引入的一个非常有效的数据处 ... -
Struts2参数传递
2010-01-13 10:45 2445本篇主要通过实例来讲述Struts2中各种各样的参数传递。这个 ... -
Struts2.0的不同版本针对枚举转换器应用
2010-01-13 10:39 2844Struts2.0 的Apache项目中从Strut ... -
Struts2.0 中支持的基本数据类的转换的类XWorkBasicConverter的分析
2010-01-13 10:25 4594项目中Struts2.1.6不支持基本数据类型的自动转换, ... -
Struts2.0加載配置順序
2009-12-28 13:33 2515Struts2.0默認的加载顺序: Constants ... -
Struts2.0的IOC方式注入SessionAware, CookiesAware
2009-12-10 19:59 4001在Action实现相应的 private Map<S ... -
Struts2工作原理和框架扩展点
2009-12-08 18:49 3880上图来源于Struts2官方站点,是Struts ... -
Struts2.0 和JQuery實現AjaX的調用功能
2009-11-27 12:47 2355开发过程忽略: 重点注意点解释以下: (1)将Ac ... -
在Struts2.0中批量操作(update Or Add)的實現和注意點
2009-11-15 16:41 3049在項目中,需要針對一批数据进行或添加或着修改操作。使用S ... -
struts2 标签针对字符串截取的处理
2009-06-18 13:16 6201struts2 标签截取字符串的功能 <td> ... -
Struts2中 用OGNL表达式
2009-06-18 12:40 3480具体记录如下:<s:set ... -
struts2的学习(复杂的遍历标签)
2009-06-18 12:36 2397例如我有个此结构的map ...
相关推荐
其中一个常见的需求是将RadioButton组与枚举类型(Enum)进行绑定,以便用户通过选择不同的RadioButton来设置某个属性的值。枚举是一种强大的数据类型,它允许我们定义一组具有特定名称的常量,这些常量通常代表某种...
TC2.0,全称Turbo C 2.0,是DOS环境下的一款经典C语言编译器,由Borland公司开发。它在80年代末至90年代初非常流行,尤其对于初学者来说,是入门C语言编程的理想工具。这个"TC2.0绿色版"是一个精简版,方便用户快速...
本示例主要探讨如何通过XAML来实现DataGridComboBoxColumn与Enum的绑定,从而为用户提供预定义的枚举值选择。 首先,我们需要创建一个Enum,这将作为ComboBox的选项来源。例如,我们可以定义一个名为`ColorEnum`的...
在这个例子中,`ItemsSource`属性绑定了Enum的所有值,`DisplayMemberPath`和`SelectedValuePath`用于显示和获取Enum的名称,而`SelectedValue`则绑定了ViewModel中的一个Enum属性,使用`EnumToStringConverter`进行...
在.NET框架中,枚举(Enum)是一种强大的工具,它允许我们定义一组命名常量,这些常量在程序中代表特定的值。在许多场景下,枚举与UI控件如DropDownList结合使用,可以方便地展示选项并进行数据交互。本篇文章将深入...
本项目展示了如何将枚举类型绑定到WPF的ComboBox控件,使得枚举值能够在UI中方便地展示和交互。 首先,枚举(Enum)在C#中是一种强大的工具,用于定义一组相关的常量。它们有助于提高代码的可读性和可维护性。例如...
目录介绍特征安装用法设置一个MappedValueRepresentable枚举使用MappedValueCollectionRepresented 使用MappedEnum类型的可编码枚举在ESet中使用OptionSet中的EnumSet 将EnumSet转换为Enum数组使用...
WPF在MVVM模式下通过Converter控制不同CheckBox对应不同枚举类型勾选,比如我现在描述一个人有八种行为,这八种行为分别通过8个CheckBox来标识,如果存在这种行为则勾选,不存在则不勾选
- **泛型编程**:Obj-C2.0中通过`NS_TYPED_ENUM`等宏支持基本类型的泛型编程。 - **类型安全**:通过编译器检查增强了类型安全性,减少了运行时错误。 #### 七、动态特性 - **动态消息发送**:Obj-C的核心特性之一...
在Struts2中,这些参数可以直接通过表单元素的`name`属性与Action类中的属性相匹配,无需额外配置即可实现自动绑定。 例如,下面的HTML代码展示了一个简单的表单,其中包含了一个文本框和一个下拉框,分别用于输入...
在Java编程语言中,`enum`(枚举)是一种特殊的类,用于定义一组固定的常量。这个特性在很多场合下非常有用,比如表示状态、角色、颜色等有限且不变的集合。本文将深入探讨Java `enum`的用法,包括其基本概念、创建...
然而,在某些情况下,我们可能会遇到`enum`类型的重定义问题,这通常发生在包含不同库或者头文件时,因为这些库可能已经定义了自己的`enum`类型,与我们的代码冲突。在给定的描述中,我们看到的是一个在使用ADO...
在Android开发中,Intent是用来在组件之间传递数据的重要工具,它可以携带各种类型的数据,包括基本类型、字符串、Parcelable对象等。然而,对于enum(枚举)类型,由于它不是Android系统默认支持的数据传递类型,...
集合在COM组件中通常用来表示一组相关的对象。`collection.zip`可能包含使用ATL的集合类模板(如`CAtlArray`、`CAtlList`或`CAtlMap`)创建自定义集合类的实例。这些类提供了一组通用的操作方法,如添加、删除、查找...
7. `EnumTools\EnumItemTypeConverter.cs`:这个类可能实现了枚举项类型转换器,使得枚举值能在不同的数据类型之间转换,这在UI展示或者数据绑定时非常有用。 8. `EnumTools.Demo\Properties\Resources.Designer.cs...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括数据绑定、类型转换、动作映射等。在处理用户输入时,Struts2框架会自动将HTTP请求参数转换为Action类的属性,这就是所谓的类型转换。在这个...
在C++编程语言中,枚举(`enum`)是一种用户定义的类型,它由一组具有整数值的命名常量组成。这些值可以被程序用来代替数字,使代码更具可读性,并且能够表示特定范围内的固定集合。 #### 枚举类型的定义与使用 ...
在枚举内部,可以通过`Enum<E extends Enum<E>>`的泛型方法`getDeclaringClass()`获取枚举常量所属的枚举类,以及`name()`和`ordinal()`方法获取常量的名称和在枚举中的位置。 总结来说,Java枚举类型提供了一种...
Swift 2.0是苹果公司在2015年推出的编程语言Swift的更新版本,它在原有的基础上进行了大量的改进和完善。Swift是一种编译型、强类型、面向对象和函数式编程的编程语言,它是苹果公司为了替代Objective-C而开发的,...
枚举(enum)在编程语言中是一种非常基础且重要的数据类型,它允许程序员定义一组预定义的常量,这些常量通常表示特定的值或状态。在这个“enum 结构分析源码”资源中,我们主要关注的是C语言中的枚举使用和实现。...