- 浏览: 7254376 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 2250整合Struts2+JasperReport Web报表应用 ... -
Struts2+JFreeChart制作图标
2011-11-26 13:52 2047前言 关于Struts2入门以及提高等在这里就不介绍了 ... -
Struts2.0中获取项目的上下文的两种方式
2010-01-19 13:42 3243Struts2.0中获取项目的上下文的两种方式 方 ... -
Struts2.0中通过OGNL访问常量必须注意的一个配置
2010-01-19 13:34 2593在项目的开始阶段,由于没有学习Struts2.0中OGNL的 ... -
Struts2.0 中值栈的实现以及解析OGNL以及值堆栈的原理
2010-01-14 13:19 4629OGNL的值栈实现的堆栈动态OGNL的表达式。何时设置 ... -
关于Struts2.0 标签中采用%{}%的处理原理
2010-01-14 13:08 2661项目中采用struts2.0 ... -
struts 2配置文件解说
2010-01-13 13:09 1370struts 2框架有两个核心配置文件: struts.xml ... -
struts2.0的ognl表达式 研究
2010-01-13 13:05 2612OGNL —— 完美的催化剂 为了解决数据从 ... -
Struts2和OGNL
2010-01-13 10:57 2015OGNL是XWork引入的一个非常有效的数据处 ... -
Struts2参数传递
2010-01-13 10:45 2397本篇主要通过实例来讲述Struts2中各种各样的参数传递。这个 ... -
Struts2.0的不同版本针对枚举转换器应用
2010-01-13 10:39 2808Struts2.0 的Apache项目中从Strut ... -
Struts2.0 中支持的基本数据类的转换的类XWorkBasicConverter的分析
2010-01-13 10:25 4542项目中Struts2.1.6不支持基本数据类型的自动转换, ... -
Struts2.0加載配置順序
2009-12-28 13:33 2475Struts2.0默認的加载顺序: Constants ... -
Struts2.0的IOC方式注入SessionAware, CookiesAware
2009-12-10 19:59 3958在Action实现相应的 private Map<S ... -
Struts2工作原理和框架扩展点
2009-12-08 18:49 3832上图来源于Struts2官方站点,是Struts ... -
Struts2.0 和JQuery實現AjaX的調用功能
2009-11-27 12:47 2324开发过程忽略: 重点注意点解释以下: (1)将Ac ... -
在Struts2.0中批量操作(update Or Add)的實現和注意點
2009-11-15 16:41 3000在項目中,需要針對一批数据进行或添加或着修改操作。使用S ... -
struts2 标签针对字符串截取的处理
2009-06-18 13:16 6154struts2 标签截取字符串的功能 <td> ... -
Struts2中 用OGNL表达式
2009-06-18 12:40 3438具体记录如下:<s:set ... -
struts2的学习(复杂的遍历标签)
2009-06-18 12:36 2355例如我有个此结构的map ...
相关推荐
WPF中如何在XAML里绑定Enum的例子
WPF 中一组 RadioButton 向 Enum 的绑定
根据Enum绑定DropDownList
DataGridComboBoxColumn 数据列选项通过XAML从Enum定义中提取。对数据对象的绑定并更改数据值;工程力求简单,方便看懂看明白。
WPF在MVVM模式下通过Converter控制不同CheckBox对应不同枚举类型勾选,比如我现在描述一个人有八种行为,这八种行为分别通过8个CheckBox来标识,如果存在这种行为则勾选,不存在则不勾选
目录介绍特征安装用法设置一个MappedValueRepresentable枚举使用MappedValueCollectionRepresented 使用MappedEnum类型的可编码枚举在ESet中使用OptionSet中的EnumSet 将EnumSet转换为Enum数组使用...
OPC server 2.0代码供大家参考
教义枚举类型 该软件包提供了一个基本实现,用于定义映射到MyCLabs\Enum\Enum对象的学说实体列类型。 该类在出色的包中定义。安装推荐的安装方法是使用 composer require acelaya/doctrine-enum-type用法此软件包...
Enum.doc Enum.docEnum.doc Enum.doc Enum.doc Enum.doc Enum.doc Enum.doc Enum.doc
simple_enum, 支持ActiveModel的简单 enum ( 包括验证和 i18n ) SimpleEnum 对于ActiveRecord和 ruby,低调的枚举像字段一样,给ActiveRecord和Mongoid模型( 为 Rails 4 构建) 带来了...从 2.0版本开始,simple_enum
Java中的Enum的使用与分析
Enum的用法Enum的用法Enum的用法Enum的用法
常见的enum类型重定义的解决方法,清晰明了。
在本例中,对于Season.SPRING这个对象,Season.SPRING.name()能够得到该对象的字符串,即“SPRING”;反之,由Season.valueOf(“SPRING”)则能够得到该对象,即Season.SPRING。也是说,使用name()方法和valueOf...
php-enum, PHP Enum实现灵感来自 SplEnum PHP enum 实现来自 SplEnum 为什么?首先,SplEnum 并不集成到PHP中,你必须单独安装它。使用 enum 而不是类常量提供了以下优点:你可以键入提示: function setAction(Ac
用于枚举磁盘设备的 Enumdisk 示例
Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类...
在C++中,枚举类型分为不限定作用域(enum)和限定作用域(enum class)。 2. enum与enum class的区别? (为什么需要限定作用域?) 答:枚举作用域是指枚举类型成员名字的作用域,起自其声明之处,终止枚举定义...
简单介绍了DNS和ENUM的原理及在IMS网络中的使用