- 浏览: 608077 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (263)
- 默认类别 (0)
- STRUTS HIBERNATE (2)
- STRUTS SPRING HIBERNATE (18)
- SOA/WEB service (8)
- PORTAL (3)
- 想法和设计思想 (17)
- SMARTEAM 二次开发 (0)
- ACTIVEBPEL (0)
- ERP (0)
- EAI (0)
- 甲醇汽油 (0)
- webwork freemarker spring hibernate (1)
- 工作流技术研究 (1)
- ROR (5)
- 搜索引擎 (7)
- 3.非技术区 (0)
- 1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (2)
- 2.Java新手区 (2)
- 4.其他技术区 (0)
- ESB (1)
- Petals ESB (6)
- 手机开发 (1)
- docker dedecms (1)
最新评论
-
w630636065:
楼主,期待后续!!!!!!!!
生成文本聚类java实现 (2) -
zilong513:
十分感谢楼主,期待后续。
生成文本聚类java实现 (2) -
qqgoodluck:
可否介绍一下您的选型依据,包括Petal ESB与MULE等E ...
Petals ESB 简介 -
jackiee_cn:
写的比较清楚,学习了
Petals ESB 集群实战 -
忙两夜:
你好,能发一下源代码吗
抓取口碑网店铺资料
在大家的编码过程当中,有没有遇到过这么一种情况,很多零乱的状态、分类和其它常用选项常常是定义死了。但是没有一个完整的东东来约束他,在每个模块当中使用相关的信息时,往往重新COPY一次,或者COPY过来修改一次。如果多人协作的话,务必会让代码变的零乱、不好管理等。
本次主要是把一些静态的分类、状态或者其它常用选项使用二维数组管理起来。如果你是一个使用JSTL或者STRUTS做前台表现的话,你就更应该好好关注了。
以下以一个审核的状态做示例,使用代码实现(光说不练是假功夫).
创建Config.java
对应的PO实体类ConfigEntity.java(如果有数据库的话,你就可以直接从数据库当中取)
具体使用方法
页面当中示例:
可以看出,在实体类里一共有三个方法,其它有两个名字, 一个是中文名字,一个是英文名字,你可以在页面当中截取本地语言并显示其中一个语言就行。
一般我是在数据库里面建立一个叫做MasterData的数据库表,把这些状态信息以一条条记录的形式存在数据库里面,在应用服务器启动的时候,把数据库里面的值Load到内存里面存成一个Map结构。硬编码的方式稍微丑了一点。
为什么要用数据库,难道这些状态有维护的界面?
本次主要是把一些静态的分类、状态或者其它常用选项使用二维数组管理起来。如果你是一个使用JSTL或者STRUTS做前台表现的话,你就更应该好好关注了。
以下以一个审核的状态做示例,使用代码实现(光说不练是假功夫).
创建Config.java
package com.antbee; import java.util.ArrayList; import java.util.List; /** * <p> * </p> * * <p> * Copyright: 版权所有 (c) 2002 - 2006 * </p> * <p> * Company: Antbee * </p> * * @author @家军 * @version 1.0 */ public class Config { /** * 客户状态 */ Object vec[][] = { { new Integer(1), new String("申请"),new String("apply")}, { new Integer(2), new String("待审核"),new String("auditing") }, { new Integer(3), new String("签约"),new String("sign up") }, { new Integer(4), new String("续签中"),new String("nominator") }, { new Integer(5), new String("过期"),new String("overdue") } }; public List Stutas = GetConfigEntity(vec); public List GetConfigEntity(Object allconfig[][]) { List ConfigList = new ArrayList(); ConfigEntity first = new ConfigEntity(); first.setTypeSeri(Integer.valueOf("0")); first.setTypeCnName("请选择"); first.setTypeEnName("Pls Select"); ConfigList.add(first); for(int i=0;i<allconfig.length;i++){ ConfigEntity configEntity = new ConfigEntity(); configEntity.setTypeSeri(Integer.valueOf(allconfig[i][0].toString())); configEntity.setTypeCnName(allconfig[i][1].toString()); configEntity.setTypeEnName(allconfig[i][2].toString()); ConfigList.add(configEntity); } return ConfigList; } }
对应的PO实体类ConfigEntity.java(如果有数据库的话,你就可以直接从数据库当中取)
package com.antbee; import java.io.Serializable; public class ConfigEntity implements Serializable { /** The cached hash code value for this instance. Settting to 0 triggers re-calculation. */ private int hashValue = 0; /** The composite primary key value. */ private java.lang.Integer typeSeri; /** The value of the simple typeName property. */ private java.lang.String typeCnName; /** The value of the simple typeName property. */ private java.lang.String typeEnName; /** * Simple constructor of AbstractDicType instances. */ public ConfigEntity() { } /** * Constructor of AbstractDicType instances given a simple primary key. * @param typeSeri */ public ConfigEntity(java.lang.Integer typeSeri) { this.setTypeSeri(typeSeri); } /** * Return the simple primary key value that identifies this object. * @return java.lang.Integer */ public java.lang.Integer getTypeSeri() { return typeSeri; } /** * Set the simple primary key value that identifies this object. * @param typeSeri */ public void setTypeSeri(java.lang.Integer typeSeri) { this.hashValue = 0; this.typeSeri = typeSeri; } /** * Return the value of the TYPE_NAME column. * @return java.lang.String */ public java.lang.String getTypeCnName() { return this.typeCnName; } /** * Set the value of the TYPE_NAME column. * @param typeName */ public void setTypeCnName(java.lang.String typeCnName) { this.typeCnName = typeCnName; } /** * Return the value of the TYPE_NAME column. * @return java.lang.String */ public java.lang.String getTypeEnName() { return this.typeEnName; } /** * Set the value of the TYPE_NAME column. * @param typeName */ public void setTypeEnName(java.lang.String typeEnName) { this.typeEnName = typeEnName; } /** * Implementation of the equals comparison on the basis of equality of the primary key values. * @param rhs * @return boolean */ public boolean equals(Object rhs) { if (rhs == null) return false; if (! (rhs instanceof ConfigEntity)) return false; ConfigEntity that = (ConfigEntity) rhs; if (this.getTypeSeri() == null || that.getTypeSeri() == null) return false; return (this.getTypeSeri().equals(that.getTypeSeri())); } /** * Implementation of the hashCode method conforming to the Bloch pattern with * the exception of array properties (these are very unlikely primary key types). * @return int */ public int hashCode() { if (this.hashValue == 0) { int result = 17; int typeSeriValue = this.getTypeSeri() == null ? 0 : this.getTypeSeri().hashCode(); result = result * 37 + typeSeriValue; this.hashValue = result; } return this.hashValue; } }
具体使用方法
/*Antbee @家军 */ Config n = new Config(); List View_Stutas = n.Stutas; request.setAttribute("View_Stutas", View_Stutas);
页面当中示例:
<c:forEach items="${View_Stutas}" var="View_Stutas"> <option value="<c:out value="${View_Stutas.typeSeri }" />"><c:out value="${View_Stutas.typeEnName}"/></option> </c:forEach>
可以看出,在实体类里一共有三个方法,其它有两个名字, 一个是中文名字,一个是英文名字,你可以在页面当中截取本地语言并显示其中一个语言就行。
评论
8 楼
BirdGu
2006-09-26
为解决国际化问题,可以存放字符串资源的键值,而不是直接存放内容。
即使不提供维护界面,放在数据库里也有好处。可以通过数据库工具维护内容。但如果放在程序里,就得改程序了。
当然,放在数据库里也有缺点,就是没有办法利用外键来保证引用完整性了。
完善这个功能是有价值的,因为是很容易做到在多个项目间重用的。
即使不提供维护界面,放在数据库里也有好处。可以通过数据库工具维护内容。但如果放在程序里,就得改程序了。
当然,放在数据库里也有缺点,就是没有办法利用外键来保证引用完整性了。
完善这个功能是有价值的,因为是很容易做到在多个项目间重用的。
7 楼
LucasLee
2006-09-26
Not bad。
不过要适应更广泛的应用,这种方法还需要进化。
比如国际化问题,你硬编码了中英文两种语言,再添加其他语言就比较痛苦了。
但是一味完善这类功能,不利于项目的进度。
不过要适应更广泛的应用,这种方法还需要进化。
比如国际化问题,你硬编码了中英文两种语言,再添加其他语言就比较痛苦了。
但是一味完善这类功能,不利于项目的进度。
6 楼
heweiya
2006-09-25
使用数据库来做呀,其实只需要两张表,以前我也做过类似的设计,叫做数据字典,一张表存所有分类,一张表存所有值。而以上的方法是我在项目当中时切入的,所以如果没有数据库的保存的话,建议使用如上方法。
5 楼
galaxystar
2006-09-25
干嘛不用Map
4 楼
zhanggok
2006-09-25
引用
一般我是在数据库里面建立一个叫做MasterData的数据库表,把这些状态信息以一条条记录的形式存在数据库里面,在应用服务器启动的时候,把数据库里面的值Load到内存里面存成一个Map结构。硬编码的方式稍微丑了一点。
为什么要用数据库,难道这些状态有维护的界面?
3 楼
jjljjl1982
2006-09-25
俺也是!
2 楼
welllove53
2006-09-25
我们也是用楼上的做法
1 楼
downpour
2006-09-25
一般我是在数据库里面建立一个叫做MasterData的数据库表,把这些状态信息以一条条记录的形式存在数据库里面,在应用服务器启动的时候,把数据库里面的值Load到内存里面存成一个Map结构。硬编码的方式稍微丑了一点。
发表评论
-
Eclipse当中两种远程调试方法
2011-01-05 11:17 2286基于Maven管理的项目,在eclipse当中有两种调 ... -
[翻译]使用Maven创建google Appengine
2010-05-06 15:35 2197原文请参考:http://www.salientpoin ... -
Not must be hibernate.properties or hibernate.cfg.xml
2010-03-05 13:47 1312Sometimes, Custom have ext ... -
使用yourkit java profiler进行性能分析
2010-01-28 17:00 4469说明: YourKit Java Profile ... -
试用Hibernate二级缓存Ehcache
2010-01-28 15:50 1865Hibernate supports several t ... -
给你的应用加入简易Licence限制
2009-06-01 15:01 3175有的时候,客户会提出这样的需求,他们的应用能不能当 ... -
优化hibernate的一招。
2007-11-09 10:20 1671原来的程序: java 代码 List Lre ... -
JSF+A4J+Spring调用ORACLE存贮过程的拙作
2007-08-17 09:35 2826近一周写了一个简单的工具,本工具是通过Spring ... -
hibernate3.2上使用UserType范例
2007-07-27 13:57 3208仔细看看hibernate的DOC发现不少惊奇的东东 ... -
三个JAVA文件完成jsf+spring+hibernate的集成.
2007-07-16 17:43 3682呵呵,本文章只贡献给哪些走捷径的coder, 开发工具:mye ... -
Myeclise5.5自动生成spring2.0+hibernate3.2+jsf1.1时的错误
2007-07-16 15:25 11153我使用myeclipse5.5分别加入hibernate3.2 ... -
ORACLE SQL语句in超过1000个的处理方法
2007-06-25 16:21 11281表现的情况: sql 代码 Hibernate ... -
EXCEL导入数据库及数据库数据导出到EXCEL
2007-05-18 17:01 16051很久没有发BLOG,呵呵,是因为最近在帮助朋友在做一个项 ... -
近期完成的一个较大的JS验证
2007-03-02 11:18 3615呵呵,近期偶完成的一个较大的JS验证,行家一看就 ... -
使用SSH+Freemarker做新闻发布系统
2007-02-07 17:18 9089最近, ... -
三个JAVA文件完成你的MVC应用
2006-09-25 16:23 5726只需要你三个JAVA类和两个配置文件,就可以完成你的MVC应用 ... -
struts标签,请你走开(系列一)
2006-09-25 16:07 4938在项目开发的很多 ...
相关推荐
选项B正确表示了一个3列的二维数组,但初始化时只指定了一个元素,编译器会自动填充剩余元素为0。 2. **数组元素的引用**:正确引用数组元素的方式是通过指针操作。给定定义`int a[10], *p; p=a;`,`*p`代表了数组...
这意味着可以在VFP中声明和使用一维数组和二维数组来存储和处理数据。 ### 5. 全局配置文件 在Web应用程序中,**Web.config**文件是ASP.NET应用的全局配置文件,用于设置应用程序的配置信息,如连接字符串、编译...
二维数组可以使用全下标、单下标和逻辑1进行标识,这些标识方式在数组操作中非常常见。 接下来,我们探讨选择题中的知识点: 1. 变量命名规则:合法的变量名不应以数字开头,所以选项(A)不合法。 2. 矩阵行列式...
` 正确定义了一个2x2的二维数组,并分别初始化了第一行和第二行的第一个元素。 - 选项B中的`int a[][2]={1,2,3,4};` 也是一个合法的二维数组定义方式,其中数组的行数未指定,编译器会自动计算。此例中,编译器将...
在给定的例题中,使用了两个嵌套循环来遍历二维数组,并计算所有元素的总和。 - **选项A**: `10`不正确。 - **选项B**: `6`不正确。 - **选项C**: `9`不正确。 - **选项D**: `13`是正确答案。 因此,正确答案为: ...
实际上,二维数组的行数和列数可以不同,这取决于具体的数组定义。例如,可以定义一个3行4列的二维数组,也可以定义一个4行3列的数组,因此行数和列数不必相同。 ### 4. 浏览网页安全问题 认为“浏览网页不会导致...
文档的最后部分还介绍了NumPy的全局状态管理,如配置选项、运行环境设置等,这些全局设置对整个NumPy环境的运行有着重要影响。 总而言之,根据给定文件内容,NumPy参考手册是涵盖了NumPy库几乎所有方面的详尽文档,...
7. 给定的事件代码创建了一个二维数组并填充了部分元素,最后通过 MsgBox 显示 a(2,5) + a(3,4) + a(4,5),计算结果为 32,对应选项 C。 8. PowerPoint 中创建新幻灯片的方法不止内容提示向导,还有其他模板和...
其他选项如`new int[2][3]`虽然可以创建固定大小的二维数组,但在灵活性方面不如`new int[3][]`。 ### 20. 数据库备份的方法 - **知识点**: 直接复制方式备份数据库的特点。 - **详细解释**: 使用直接复制方式备份...
- **详细解释**:在VBA或类似的编程语言中,可以使用嵌套循环来填充和操作二维数组。在示例代码中,通过两层循环分别填充了数组的不同部分,最终输出数组中特定位置元素的值之和。 ### 9. 局域网(LAN) - **知识...
通常可以使用JSON格式,如树形结构或二维数组,以表示属性的层级关系和依赖关系。 2. **前端开发**:前端部分主要负责交互逻辑的实现,这包括监听用户的选择事件,触发相应的属性值更新。常用的前端框架如微信小...
**详细解释**:在二维数组中,计算某个元素位置时,需要考虑数组的行数和列数。对于二维数组 a[m][n],数组 a[j][i] 前面的元素个数可以通过 `i*m+j` 来计算。因此,正确答案是 **B**。 ### 16. if 语句的执行逻辑 ...
23. 创建二维数组:正确创建一个长度为3的二维数组,应使用`new int[3][];`,先指定行数,再在每行中指定列数。 24. DFD的作用:数据流图是需求分析阶段的工具,用于描绘系统的数据流程。 25. Vis...(这部分内容...
- 对于一个m列的二维数组,计算元素a[i][j]的公式为i*m+j,其中i表示行索引,j表示列索引。 ### 15. 数据库系统的核心 题目询问数据库系统的核心。正确答案是数据库管理系统(DBMS)。 - **数据库**:存储数据的集合...
2. 正确定义一维数组的方式是C选项。`char a[] = "012345";` 定义了一个字符数组,而其他选项要么数组长度超出定义,要么格式错误。 3. Telnet或远程登录允许用户从一台计算机远程控制另一台计算机,执行远程计算机...
5. 指针和数组:`int (*p)[3]`定义了一个指针变量p,它指向一个含有三个整数元素的一维数组,即二维数组的一行。 6. CallableStatement接口:在Java数据库连接(JDBC)中,CallableStatement接口专门用于执行数据库...
通过分析这个Python五子棋游戏源码,你可以学习到如何用Python实现一个简单的图形用户界面游戏,理解事件驱动编程、游戏逻辑设计以及如何使用Python进行状态管理和用户交互。这对于提高Python编程技巧和理解面向对象...