- 浏览: 286823 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (121)
- jsf (16)
- 技术 (1)
- seam (27)
- jpa/hibernate (6)
- seam-对话 (3)
- 复用组件 (1)
- java基础 (18)
- JBOSS (1)
- Facelets (3)
- EL表达式 (2)
- 正则表达式 (1)
- sogi (2)
- 工具 (2)
- 设计模式/重构 (2)
- 项目管理-maven (5)
- EJB (1)
- ClassLoader (2)
- eclipse (1)
- jQuery (0)
- seam2源码分析 (0)
- osgi (0)
- TEST (0)
- 日志记录 (1)
- 批处理工作流 (0)
- 业务需求 (0)
- 语言 (2)
- 架构 (2)
- svn (1)
- sql (1)
- 异常处理 (1)
- mybatis (2)
- http (2)
- 代码可读性 (3)
- 配置化 (0)
- 错误恢复 (0)
- 状态查询 (1)
- 误操作恢复 (0)
- 工作安排 (0)
- 自动化 (0)
- 解耦 (1)
- 交流 (1)
- spring (6)
- 代码质量 (2)
- 方案 (1)
- 分布式 (1)
- mvc (2)
最新评论
-
luchuanbaker:
经过测试,实际上,mybatis并没有此问题,我也碰到了这样的 ...
mybatis 异常不友好 举例 -
huang882088:
jboss的war发布到tomcat里报这个错误怎么办?
classloader常见问题总结 -
yourenyouyu2008:
大型,可持续扩展的系统适合使用静态语言。大型系统中的部分地方可 ...
Nuxeo公司探秘:从Python迁移到Java -
yourenyouyu2008:
既然Nuxeo同时使用了Pytho ...
Nuxeo公司探秘:从Python迁移到Java -
panshunchang:
还有一种可能,真的缺这个jar包,在tomcat lib目录下 ...
classloader常见问题总结
enmu基本知识
//简单的枚举
public enum Planet {
MERCURY ,
VENUS
}
//复杂的枚举
public enum Planet {
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6)
private final double mass; // in kilograms
private final double radius; // in meters
//MERCURY (3.303e+23, 2.4397e6)里面的参数与构造函数对应
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double getmass() { return mass; }
public double getradius() { return radius; }
}
可以使用枚举的具体方法
Planet.MERCURY.getmass()
Planet.MERCURY.getradius()
在jsf页面使用Enmu
<h:selectOneMenu id="CustomerStatusList" value="#{customerAccountsAction.status}">
<s:selectItems value="#{customerStatusList}" var="_s" label="#{_s.label}" noSelectionLabel="" />
<s:convertEnum />
</h:selectOneMenu>
@Factory
public CustomerAccountStatus[] getCustomerStatusList() {
return CustomerAccountStatus.values();//.values()是Enmu的公共方法,用于返回全部枚举值。
}
package org.manaty.model.party.customerAccount;
//枚举类定义
public enum CustomerAccountStatus {
ACTIVE("Actif"),LOCKED("Verrouill"),CLOSED("Ferm");
private String label;//对应于ACTIVE("Actif")括号里的Actif
CustomerAccountStatus(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
}
目前存在的问题是label="#{_s.label}"没法国际化,如果要在列表中国际化就应该 在getCustomerStatusList()
方法中修改枚举的label值,如此给CustomerAccountStatus增加setLabel方法,getCustomerStatusList()方法中循环 CustomerAccountStatus.values(),取出枚举值的name,然后再去资源文件中获取对应的国际化label。、
问题在于这样就修改了枚举值本身的内容,而枚举值的含义是相当于常量,常量是不可以改变的。
最新解决办法
不用label来显示enmu,直接用enmu.name()来作为key去资源文件中取对应的国际化
<h:selectOneMenu id="CustomerStatusList" value="#{customerAccountsAction.status}">
<s:selectItems value="#{customerStatusList}" var="_s" label="#{messages[_s.name()]} " noSelectionLabel="" />
<s:convertEnum />
</h:selectOneMenu>
为什么使用_s.name()而不使用 _s.label呢?
因为label是特定enmu的方法,,而不是所有enmu有的方法,这样_s.label就不通用了。
补充:也可以作为一个约定来使用label,让每个enmu增加label方法,label相当于起了个别名,表达式的意思
更明白些,另外name表达的意思比较简短,容易重复。
System.out.println(Status.CLOSED);---CLOSED 输出枚举的名字
System.out.println(Status.CLOSED.name());--CLOSED 输出枚举的名字
System.out.println(Status.CLOSED.getLabel());--test.closed 输出枚举的label
直接在页面内使用枚举
public enum CycleType {
MONTH("Days of Month"),WEEK("Days of Week");
private String name;
CycleType(String name){
this.name=name;
}
public String toString() {
return this.name;
}
}
<a4j:outputPanel id="week"
rendered="#{calendarParam.cycleBasis == 'WEEK'}">
页面内的枚举比较使用的是【枚举名称】而不是toString()的名称
发表评论
-
spring seam比较
2014-01-14 14:06 9561)获取框架中的bean spring通过静态方法中传递 ... -
Nuxeo公司探秘:从Python迁移到Java
2013-07-21 10:57 1084成立于2000年的Nuxeo公 ... -
自定义组件问题
2013-03-01 10:14 01)ios:dataTable组件中不加buttonPane ... -
seam中内嵌的事务回滚拦截器RollbackInterceptor
2012-12-28 15:17 2119seam中有两种事务管理方 ... -
使用JTA的事务同步机制实现分布式事务j的功能avax.transaction.Synchronization
2012-12-05 18:43 0分布式事务强大功能,但也会带来性能和管理上的压力(这是听专家门 ... -
seam中的test
2012-04-25 11:25 0seam中提供了一些非seam环境下的unit testing ... -
Hibernate的FlushMode 和seam对话中的FlushMode
2012-02-21 17:29 0hibernate提供了5种flushmode。 1) NE ... -
seam 中的注释分类
2012-02-14 11:08 0seam中注释主要分为2大类,seam组件对象构造阶段的注释和 ... -
seam2 热部署
2011-09-30 10:25 1200seam能很好地支持 页面(faceslet)、非ejb cl ... -
使用长对话的"manual" flush-mode ,多操作一次提交
2011-03-24 10:27 1545一次长对话访问中可以包括多个页面,每个页面只处理部分数据,但不 ... -
seam 属性配置与installed="false"的冲突
2011-03-08 15:09 1120问题 在测试和运行环境使用不同的事务配置,默认不需要指定事务 ... -
最简单的richfaces tree使用方式
2010-10-30 12:54 2361richfaces tree提供的示例都是一次全部构造出树,对 ... -
page scope介绍及用途
2010-06-02 00:13 6303jsf1.2只提供了3中作用域,application、ses ... -
seam框架中@Unwrap的使用示例
2009-09-07 10:07 16581) 把FacesContext当seam组件使用,可以直接 ... -
基于seam技术的中文网站
2009-09-05 16:28 1360基于seam的中文网站,欢迎大家提供实际的seam项目 ht ... -
在seam项目启动后执行数据库操作
2009-07-15 15:33 1795项目启动时执行些初始化数据操作,问题是事务不能提交,这样虽然方 ... -
基于seam-gen的热部署(hot deploy)相关问题
2009-07-06 12:04 1494使用seam-gen生成的seam项目是支持热部署的。 ... -
提升jsf/seam性能
2009-05-23 22:07 1453转载:http://www.jsfcentral.com/ar ... -
根据组件名字获取组件对象Component.getInstance(String name)
2009-05-05 22:02 4042Component.getInstance(String ... -
components.xml 配置seam组件
2009-04-29 12:21 2418components.xml 的配置采用反射机制来实现,组件类 ...
相关推荐
- **使用“推”风格的MVC**:展示了如何使用 SEAM 的推送机制来更新数据。 #### 三、使用Seam-gen快速启动 - **准备活动**:设置开发环境。 - **建立一个新的Eclipse项目**:通过 Eclipse 创建 SEAM 项目。 - **...
这个文档集合包含了对Seam及其相关技术的详尽介绍,帮助开发者深入了解并有效地使用Seam。 **1. Seam Reference** Seam Reference 提供了Seam框架的完整指南,包括英文版和中文版。中文版的Seam_2.0_Reference_zh_...
Seam的主要目标是减少开发中的样板代码,提高生产力,同时保持灵活性和可扩展性。 **二、Seam核心概念** 1. **组件(Components)**: Seam的核心是组件模型,它允许开发者定义和管理应用中的对象。组件可以是简单的...
seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。
在这个“seam需要的jar包”压缩包中,包含了运行和开发Seam应用程序所需的各种库文件。 首先,Seam框架的核心依赖于JSF,这是Java EE中的一个用户界面组件框架,用于构建交互式Web应用。JSF提供了模型-视图-控制器...
本文将围绕“Seam框架中使用FCKeditor”的主题进行详细探讨,结合给出的标签“源码”和“工具”,我们将深入理解如何在Seam项目中集成并使用FCKeditor,以及相关的依赖库。 Seam是一个Java EE框架,它整合了JSF...
- **工作原理**:深入探讨了示例中使用的 Seam 特性,如事件处理机制和页面流。 ##### 1.4 Seam 和 jBPM:待办事项列表示例 - **代码理解**:展示了如何集成 Seam 和 jBPM 这两个框架,实现一个简单的待办事项列表...
7. **国际化与本地化**:Seam支持多语言环境,对于中英文双语版本的书籍,这为开发者提供了跨越语言障碍的便利,帮助全球的开发者理解和使用Seam框架。 8. **测试支持**:Seam提供了一套完整的测试工具,包括单元...
在源码层面,SeamTest提供了JUnit扩展,使得在JUnit测试类中可以直接使用Seam的服务和组件。例如,你可以直接注入需要测试的Seam bean,而无需通过繁琐的查找或依赖注入。此外,SeamTest还支持EJB和CDI(Contexts ...
8. **Seam组件**:了解如Conversation、Transactions、邮件服务等Seam内置组件的使用方法。 9. **实时性与Ajax**:探索Seam如何实现实时更新和Ajax功能,提升用户体验。 ### Seam官方参考手册 Seam官方参考手册...
每个开发者都可以在本地环境中使用相同的构建流程,而不会因为库版本不一致或缺失而导致问题。 总的来说,通过Maven管理Seam项目,可以有效地组织和自动化项目构建,减少手动配置的工作,提高开发效率。结合Seam的...
Seam是一个Java EE集成框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Enterprise JavaBeans(EJB)3.0以及其他组件统一在一个简化开发的环境中。这篇博客的链接虽然无法直接访问,但我们可以...
完成上述基础配置后,开发者就能在任何支持JSF的容器中使用Seam了。不过,Seam还提供了对Ajax和EJB 3的支持,需要根据项目需求进行额外的配置。 接下来,我们来看看Seam中常见的注解: 1. **@Name**:用于标识Seam...
这份资料提供了丰富的示例代码和项目,通过这些实例,开发者可以深入理解Seam的工作原理以及如何在实际项目中应用它。这种方法能够确保理论与实践相结合,使学习过程更加高效。 #### 四、核心特性详解 - **组件模型...
在实际开发中,开发者可以通过这些资源学习如何使用Seam进行组件注入、依赖管理、页面导航、事件处理等操作,同时掌握如何利用EJB进行业务逻辑处理,通过JPA进行数据持久化。此外,Seam还支持CDI,这使得开发者可以...
Seam鼓励使用Java 5的注解特性来配置应用,这种方式可以减少XML配置文件的数量,提高开发效率。 ##### 7. 增强的表达式语言 Seam提供了对标准EL(Expression Language)的扩展,称为JBoss EL。这种扩展允许在...
6. **使用Seam工作空间管理的完整范例:IssueTracker**:介绍了一个问题追踪系统的实现过程,强调了Seam在多用户协作方面的优势。 7. **结合Seam和Hibernate的范例:Hibernate系统**:展示了一个利用Seam和Hibernate...
整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。