- 浏览: 241805 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
lijunwyf:
zhanger 写道/home/data/svn/ 为svn ...
linux svn启动和关闭 -
eyeit2000:
VIM学的怎么样?
vim 操作总结 -
chenp1111:
这个就是仓库的地址
linux svn启动和关闭 -
zhanger:
/home/data/svn/ 为svn的安装目录这个应该是 ...
linux svn启动和关闭
1,web.xml定义一个系统的过滤器
2,写这个filter的内容
3,spring配置一个systemServletContextLoader的bean
${enumration.entity.package}这个是系统定义枚举类型所放置的包,比方叫com.xxxx.entity.enumeration
4,这个bean所得对应的内容如下
这个类通过配置的枚举类型所放的包,通过反射的方式拿到枚举类型
5,枚举类型的类如下
message_zh_CN.properties配置文件如下
6,jsp页面如使用方式
a,<%@ taglib prefix="fmt" uri= "http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setBundle basename ="message" />这是配置枚举类型显示的文件
message_zh_CN.properties,这个要在spring配置文件预先加载
b,使用如下
<listener> <listener-class>com.zainta.pregnancy.web.listener.ServletContextLoaderListener</listener-class> </listener>
2,写这个filter的内容
package com.zainta.pregnancy.web.listener; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.springframework.context.ApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; public class ServletContextLoaderListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent event) { ServletContext servletContext = event.getServletContext(); // 通过WebApplicationContextUtils 得到Spring容器的实例。 ApplicationContext application = WebApplicationContextUtils .getWebApplicationContext(servletContext); // 返回Bean的实例。 SystemServletContextLoader systemServletContextLoader = (SystemServletContextLoader) application .getBean("systemServletContextLoader"); //初始化所有的枚举类型的实体 systemServletContextLoader.closeServletContext(servletContext); } public void contextInitialized(ServletContextEvent event) { ServletContext servletContext = event.getServletContext(); // 通过WebApplicationContextUtils 得到Spring容器的实例。 ApplicationContext application = WebApplicationContextUtils .getWebApplicationContext(servletContext); // 返回Bean的实例。 SystemServletContextLoader systemServletContextLoader = (SystemServletContextLoader) application .getBean("systemServletContextLoader"); //初始化 systemServletContextLoader.initServletContext(servletContext); } }
3,spring配置一个systemServletContextLoader的bean
<bean id="systemServletContextLoader" class="com.zainta.pregnancy.web.listener.SystemServletContextLoader"> <property name="enumEntityPackage" value="${enumration.entity.package}"></property> </bean>
${enumration.entity.package}这个是系统定义枚举类型所放置的包,比方叫com.xxxx.entity.enumeration
4,这个bean所得对应的内容如下
/** * */ package com.zainta.pregnancy.web.listener; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Component; import com.opensymphony.xwork2.util.ResolverUtil; /** * @author Downpour * */ @Component("systemServletContextLoader") public class SystemServletContextLoader { private static final Log logger = LogFactory .getLog(SystemServletContextLoader.class); private String enumEntityPackage; /* * (non-Javadoc) * * @see * com.demo2do.core.web.loader.ServletContextLoader#initServletContext(javax * .servlet.ServletContext) */ public void initServletContext(ServletContext servletContext) { if (logger.isDebugEnabled()) { logger.debug("Initial ServletContext for system"); } // alias enum entity to servletContext aliasEnumEntity(servletContext); servletContext.setAttribute("ctx", servletContext.getContextPath()); } /* * (non-Javadoc) * * @see * com.demo2do.core.web.loader.ServletContextLoader#closeServletContext( * javax.servlet.ServletContext) */ public void closeServletContext(ServletContext servletContext) { if (logger.isDebugEnabled()) { logger.debug("Destroying ServletContext for system"); } servletContext.removeAttribute("enums"); servletContext.removeAttribute("ctx"); } /** * Alias Enum entity under entity package * * @param servletContext */ protected void aliasEnumEntity(ServletContext servletContext) { // first find out all the enum classes according to the entity packages ResolverUtil<Object> resolver = new ResolverUtil<Object>(); resolver.find(new ResolverUtil.Test() { @SuppressWarnings({ "rawtypes" }) public boolean matches(Class type) { return Enum.class.isAssignableFrom(type); } @Override public boolean matches(URL resource) { // TODO Auto-generated method stub return false; } @Override public boolean doesMatchClass() { return true; } @Override public boolean doesMatchResource() { // TODO Auto-generated method stub return false; } }, enumEntityPackage); Map<String, Object> enums = new HashMap<String, Object>(); for (Class<?> clazz : resolver.getClasses()) { String key = clazz.getName().substring( clazz.getName().lastIndexOf(".") + 1); try { enums.put(key, clazz.getMethod("values").invoke(clazz)); } catch (Exception e) { e.printStackTrace(); } } servletContext.setAttribute("enums", enums); } public String getEnumEntityPackage() { return enumEntityPackage; } public void setEnumEntityPackage(String enumEntityPackage) { this.enumEntityPackage = enumEntityPackage; } }
这个类通过配置的枚举类型所放的包,通过反射的方式拿到枚举类型
5,枚举类型的类如下
package com.zainta.pregnancy.entity.enumeration; /** *@author : rannie.chen@zainta.com *@version: 2012-10-24上午10:16:27 *@desc: */ public enum FakeStatus { //0,非冒名 NOTFAKED("enum.fake_status.notfaked"), //1,疑似 UNSURE("enum.fake_status.unsure"), //2,冒名 FAKED("enum.fake_status.faked"); FakeStatus(String key) { this.key = key; } String key; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public int getOrdinal() { return this.ordinal(); } }
message_zh_CN.properties配置文件如下
#enum enum.fake_status.notfaked=非冒名 enum.fake_status.unsure=疑似 enum.fake_status.faked=冒名
6,jsp页面如使用方式
a,<%@ taglib prefix="fmt" uri= "http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setBundle basename ="message" />这是配置枚举类型显示的文件
message_zh_CN.properties,这个要在spring配置文件预先加载
b,使用如下
<select name = ""> <option value = "">--请选择--</option> <c:forEach items="${enums['FakeStatus']}" var = "fakeStatus"> <option value = "${fakeStatus}"> <fmt:message key = "${fakeStatus.key}"></fmt:message> </option> </c:forEach> </select>
发表评论
-
工作内容总结
2013-01-05 09:45 20141,maven添加非官方jar包到本地库 mvn instal ... -
思雨搜索框架name的书写格式
2012-10-14 15:38 1410/** 属性比较类型. */ EQ, LIKE, LT, GT ... -
配置新环境
2012-04-18 15:10 12501,安装jdk,配置环境变量 ①新建“JAVA_HOME ... -
migraion 做数据库版本管理
2011-10-18 20:27 1252可以使用migration对数据库版本做维护,他会默认找到ve ... -
HttpClient入门
2011-09-21 18:06 1151HttpClient简介 HTT ... -
Eclipse安装birt报表插件
2010-10-28 18:03 114651. BIRT 概述 BIRT是一个Eclipse-base ... -
javascript 时间操作
2010-10-13 18:53 13441,给固定格式字符串返回date 给一个字符串类型的dat ... -
Java相对路径读取文件
2010-09-21 10:09 2026不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文 ... -
获得每日,每周,每月的0点和24点的时间戳
2010-08-22 10:12 38313//获得当天0点时间 public static int g ... -
Spring相关概念
2010-07-23 17:37 938spring 的优点? 1.降低了组件之间的耦合性 ,实现了 ... -
discuz 论坛相关操作
2010-06-22 10:43 1452Discuz批量删除未审核的主题和回复的办法 用phpMy ... -
ajax
2010-02-09 11:21 838我的淘宝店http://shop60787115.taobao ... -
vim 使用
2010-02-02 11:15 1154我的淘宝店http://shop60787115.taobao ... -
QQ,MSN,SKYPE等在线状态代码
2010-01-25 17:44 2534我的淘宝店http://shop60787115.taobao ... -
Spring--quartz中cronExpression配置说明
2010-01-19 20:50 983我的淘宝店http://shop60787115.taobao ... -
Java项目SVN自动编译重启
2010-01-07 10:59 2752我的淘宝店http://shop60787115.taobao ... -
ftp 报错500 OOPS: Connection closed by remote host.
2010-01-07 10:19 3714我的淘宝店http://shop60787115.taobao ...
相关推荐
这个文件可能包含了各种枚举类型定义和变量声明的实例,包括如何定义枚举常量、如何在程序中使用它们,以及如何处理枚举值和整数之间的转换。通过学习这些例子,开发者可以更好地理解和掌握枚举类型在实际编程中的...
如果要在 QML使用 C++中定义的类型,有些数据类型是是可以直接使用的,如常见的 int,但是还有一些相对特殊的类型就需要做些特定的操作才可以使用了。 博客地址:...
非常有用的枚举类型使用例子,简化了数据采集通道的定义。
在易语言中,枚举类型(Enum)是一种特殊的数据类型,用于定义一组具有特定名称的常量。这些常量在程序中代表特定的值,使得代码更易于理解和维护。然而,易语言本身并不直接支持枚举类型,因此程序员需要通过一些...
总结来说,Java枚举类型提供了一种安全、类型安全的方式来定义和使用常量,它可以拥有构造器、方法和字段,并能与switch语句、序列化、反射等Java特性很好地结合。理解并熟练使用枚举,能够使代码更加清晰、易读,...
在Spring Boot项目中,枚举类型(Enums)的使用是一种常见的数据表示方式,它们提供了类型安全和可维护性。本文将深入探讨如何在Spring Boot应用中实现枚举类型的最佳实践,包括前端与后端交互、数据库操作以及序列...
一旦定义了枚举类型,就可以像使用其他类一样来使用它。例如,假设我们有一个`PrintJob`类,它可以用来创建打印作业,我们可以使用`PrintJobOrientation`来设置打印作业的方向: ```as3 var pj:PrintJob = new ...
枚举类型(Enumeration)在编程语言中是一种特殊的数据类型,用于定义一组有限的常量,这些常量通常代表特定的值或状态。枚举在很多编程语言中都有所支持,如C#、Java、C++和Python等。本文将深入探讨枚举类型的使用...
枚举类型的定义需要使用关键字enum,并且需要指定枚举类型的名称和枚举值。枚举类型的定义的一般形式为:enum 枚举类型名 { 枚举值1, 枚举值2, ……, 枚举值n};其中,enum是枚举类型的标志,枚举类型名是由用户定义...
C#中的枚举类型是一种非常实用的数据类型,它允许开发者定义一组命名的常量集合,这些常量通常代表一个特定的数值。通过枚举类型,我们可以将一系列相关的值组织在一起,提高代码的可读性和可维护性。在本文中,我们...
Java 中的枚举类型是一种特殊的数据类型,它允许我们定义一组命名的常量。枚举类型骨子里是一个类别,所以您编译完成后,会产生一个 `.class` 档案。 枚举类型的用法 在 Java 中,我们可以使用 `enum` 关键词来...
本文将详细介绍如何在Python中使用枚举类型,包括枚举的定义、使用和一些实践应用。 枚举类型是Python中一种非常有用的数据类型,它可以帮助开发者以一种结构化和可读性高的方式处理一组相关的常量。通过本文的详细...
thinkPHP调用枚举类型,里面根据参数不同返回值不同,初步只封装了input(radio、check)、td、select等。
- **定义**: 使用`enum`关键字定义枚举类型,可以在枚举类型中定义一组固定的值,这些值都是该枚举类型的实例。 - **实例**: 枚举类型的每一个值都可以看作是该枚举类型的一个实例。例如,在上面的例子中,`Grade`...
例如,如果一个自动化项目需要跟踪一个设备的状态,用户可以创建一个包含所有可能状态的枚举类型。 在TIA博图中定义数据类型的基本步骤如下: 1. 打开TIA博图软件,创建或打开一个项目。 2. 在项目树中找到数据块...
本文将详细介绍如何在Python中使用枚举类型,包括枚举的基础概念、创建和使用枚举类的步骤,以及枚举在实际编程中的应用案例。 枚举类型是Python中一个强大的特性,它可以帮助开发者编写更清晰、更易于维护的代码。...
在编程领域,枚举类型(Enumeration Type)是一种强大的工具,用于定义一组预定义的常量。这些常量通常表示特定的值集合,如颜色、星期、状态等。...理解和熟练使用枚举类型是任何开发者必备的技能之一。
枚举类型(enumerated type),在编程语言中是一种强大的数据类型,它允许程序员定义一组具有特定名字的常量。这些名字通常表示特定的值,它们是整数类型的,且值的范围由程序员在定义时指定。枚举类型有助于提高...
Java 枚举数据类型 Java语言中没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。这被称作int枚举模式。这种模式存在两个问题:类型安全...这样,我们可以使用枚举类型来提高类型安全性和可读性。
枚举类型还可以与其他集合框架结合使用,例如`EnumSet`和`EnumMap`。`EnumSet`是专为枚举设计的高效集合,而`EnumMap`则是一个以枚举类型为键的映射表。 在枚举类型中,还可以定义抽象方法,所有枚举常量必须实现...