`
三片仙人掌
  • 浏览: 12568 次
社区版块
存档分类
最新评论

jstl获取常量、枚举,防止硬编码标签实现

 
阅读更多

转载请注明原文链接。

http://zhaorui1125.iteye.com/blog/2264969

 

 

直接贴代码。

 

标签处理Java代码:

import java.lang.reflect.Field;

/**
 * @date 2015年12月18日 上午10:26:33
 */
public class EnumTag {
	/**
	 * 根据类名、枚举名、字段名获取枚举值
	 * @param className
	 * @param enumName
	 * @param fieldName
	 * @return
	 * @throws NoSuchFieldException
	 * @throws SecurityException
	 * @throws ClassNotFoundException
	 * @throws IllegalArgumentException
	 * @throws IllegalAccessException
	 */
	public static<T> T getEnumValue(String className,String enumName,String fieldName) throws NoSuchFieldException, SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException{
		Class c = Class.forName(className);
		Field f = c.getField(enumName);
		Object o =f.get(c);
		Field f1 = o.getClass().getDeclaredField(fieldName);
		f1.setAccessible(true);
		return (T)f1.get(o);
	}
	
	public static Integer getInt(String className,String enumName,String fieldName) throws NoSuchFieldException, SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException{
		return getEnumValue(className,enumName,fieldName);
	}
	
	public static String getStr(String className,String enumName,String fieldName) throws NoSuchFieldException, SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException{
		return getEnumValue(className,enumName,fieldName);
	}
}

 配置文件:

<?xml version="1.0" encoding="GB2312" ?>
<taglib xmlns=" http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
	version="2.0">

	<description>get enum value tld</description>
	<display-name>enum</display-name>
	<tlib-version>1.0</tlib-version>
	<short-name>enum</short-name>
  	<uri>/enum</uri>
	<function>
		<description>获取枚举值</description>
		<name>getStr</name>
		<function-class>com.mtime.b2c.tags.EnumTag</function-class>
		<function-signature>java.lang.String getStr(java.lang.String,java.lang.String,java.lang.String)</function-signature>
	</function>
	<function>
		<description>获取枚举值</description>
		<name>getInt</name>
		<function-class>com.mtime.b2c.tags.EnumTag</function-class>
		<function-signature>java.lang.Integer getInt(java.lang.String,java.lang.String,java.lang.String)</function-signature>
	</function>
</taglib>

 标签使用

<%@ taglib prefix="img" uri="/img"%>

${enum:getInt('com.xxx.b2c.constant.GoodsContentLayoutEnum','Text','value')}

 

 

分享到:
评论

相关推荐

    jstl标准标签库jar包.zip

    jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2...

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    3. 使用JSTL标签:现在可以在JSP页面中使用JSTL标签,如`&lt;c:forEach&gt;`进行迭代,`&lt;c:if&gt;`进行条件判断,`&lt;fmt:formatDate&gt;`格式化日期等。 总之,JSTL是提升JSP页面编写效率的重要工具,而依赖注入则是现代Java应用...

    JSTL 以及自定义标签开发相关

    JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...

    jstl标签使用文档,jstl标签使用帮助文档

    **JSTL(JavaServer Pages Standard Tag Library)** 是一个标准的标签库,它为Java Servlet和JavaServer Pages (JSP) 提供了强大的处理能力,使得开发者可以通过使用标签而不是脚本来实现页面逻辑,从而提高了代码...

    JSTL标签库需要导入的Jar包

    2. **javax.servlet.jsp.jstl.core.jar**:这个JAR包包含了JSTL的核心实现,提供了标签处理类和接口。 3. **javax.servlet.jsp.jstl.fmt.jar**:此包提供了国际化和格式化支持,如 `&lt;fmt:message&gt;` 和 `...

    jstl1.2标签库jar包

    这个JAR文件提供了JSTL API的实际实现,包括对JSTL标签的处理逻辑和功能。在运行时,Web应用服务器需要这个JAR来执行在JSP页面中使用的JSTL标签。`jstl-impl-1.2.jar`包含了处理表达式语言(EL, Expression ...

    jstl两个核心包和jstl标签库EL表达式详解

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它简化了在JSP页面中的编程,使开发者能够使用预定义的标签来处理常见的任务,如迭代、条件判断、XML处理等。在本文中,我们...

    jstl标签库的配置

    **JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中常用的一组标准标签库,它提供了一套方便、高效的JSP页面控制和数据处理标签,旨在简化JSP开发,提高代码的可读性和可维护性。本篇文章将...

    JSTL标签库jar包文件

    `standard.jar`包含了JSTL的实现,而`jstl.jar`则包含了JSTL的核心标签库定义。将这两个jar包添加到项目的类路径(ClassPath)中,通常是放置在WEB-INF/lib目录下,这样服务器在启动时就能找到并加载这些库。 **...

    购物车(JSTL实现)

    这个"购物车(JSTL实现)"项目提供了一个实际的案例,演示了如何利用JSP和JSTL的标签来实现一个完整的购物车功能。通过此项目,学习者可以提升对JSP动态网页开发的理解,以及JSTL在处理服务器端逻辑时的便利性。同时...

    JSTL标签配置流程

    这里对比了使用JSP scriptlet和JSTL实现从1数到10的页面: - **JSP scriptlet**: ```html &lt;title&gt;Count to 10 in JSP scriptlet for(int i=1; i; i++) { %&gt; &lt;%=i%&gt;&lt;br/&gt; } %&gt; ``` - **JSTL**: ```html...

    jstl标签实现货币的格式化

    ### jstl标签实现货币的格式化 在Web开发中,数据展示的美观与易读性对于提升用户体验至关重要。特别是在涉及金额显示时,合理的货币格式化不仅能够使数据更加直观,还能体现应用的专业性。JavaServer Pages ...

    JSTL1.1.2标签库

    JSTL1.1.2标签库 JSTL1.1.2标签库 JSTL1.1.2标签库

    JSTL常用标签总结

    JSTL(JavaServer Pages Standard Tag Library)即JavaServer页面的标准标签库,它是一套用于JSP页面的自定义标签库,通过这些标签可以简化JSP页面的开发。本文将对JSTL中常用的标签进行总结。 首先,标签主要用于...

    JSTL标签.zip

    JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是Java Web开发中的一种重要工具,它为JSP页面提供了一系列预定义的标签,用于简化页面逻辑,提高代码可读性和可维护性。JSTL主要由...

    jsp+jstl实现分页

    jsp+jstl实现分页,简单的分页

    jstl 自定义标签

    JSTL提供了许多内置标签来处理常见的任务,如迭代、条件判断、XML处理等。在这个场景中,我们要讨论的是如何使用JSTL来自定义标签,并将一个`int`类型的值转换为时间格式。 首先,理解自定义标签的创建过程是必要的...

    EL表达式及JSTL里三个主要标签实现表的增删改查

    EL表达式用于方便地访问JavaBean或其他作用域中的数据,而JSTL提供了一系列标签库,包括用于数据库操作和页面控制的元素,帮助开发者实现表的增删改查功能。下面将详细解释这两个概念以及如何利用它们来实现CRUD操作...

    jstl实现投票小系统

    总结起来,"jstl实现投票小系统"项目涉及了以下几个关键技术点: 1. 使用JSTL的`sql`标签库进行数据库操作,包括查询、更新数据。 2. 数据库设计,包括`userid`、`username`和`ticket`三个字段,用于存储投票系统的...

Global site tag (gtag.js) - Google Analytics