JSP自定义tld方法标签
卧槽
我们可以通过tld文件,自定义一个方法标签,以便在页面中使用,目录通常放在WEB-INF下面的tlds文件夹:
引入方式示例,直接在jsp上引入tld标签文件:
- <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
- fns.tld中的写法:
- <?xml version="1.0" encoding="UTF-8" ?>
- <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>JSTL 1.1 functions library</description>
- <display-name>JSTL functions sys</display-name>
- <tlib-version>1.1</tlib-version>
- <short-name>fns</short-name>
- <uri>http://java.sun.com/jsp/jstl/functionss</uri>
- <!-- DictUtils -->
- <function>
- <description>获取字典标签</description>
- <name>getDictLabel</name>
- <function-class>com.jeeplus.modules.sys.utils.DictUtils</function-class>
- <function-signature>java.lang.String getDictLabel(java.lang.String, java.lang.String, java.lang.String)</function-signature>
- <example>${fns:getDictLabel(value, type, defaultValue)}</example>
- </function>
- <function>
- <description>获取字典标签(多个)</description>
- <name>getDictLabels</name>
- <function-class>com.jeeplus.modules.sys.utils.DictUtils</function-class>
- <function-signature>java.lang.String getDictLabels(java.lang.String, java.lang.String, java.lang.String)</function-signature>
- <example>${fns:getDictLabels(values, type, defaultValue)}</example>
- </function>
- <function>
- <description>获取字典值</description>
- <name>getDictValue</name>
- <function-class>com.jeeplus.modules.sys.utils.DictUtils</function-class>
- <function-signature>java.lang.String getDictValue(java.lang.String, java.lang.String, java.lang.String)</function-signature>
- <example>${fns:getDictValue(label, type, defaultValue)}</example>
- </function>
- 注:
function-class就是该方法的实体所在类路径,- function-signature就是该方法的方法名,这个方法必须是个static方法。
- example就是使用方式写法示例
后台:
- public static String getDictLabel(String value, String type, String defaultValue){
- if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(value)){
- for (Dict dict : getDictList(type)){
- if (type.equals(dict.getType()) && value.equals(dict.getValue())){
- return dict.getLabel();
- }
- }
- }
- return defaultValue;
- }
- public static String getDictLabels(String values, String type, String defaultValue){
- if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(values)){
- List<String> valueList = Lists.newArrayList();
- for (String value : StringUtils.split(values, ",")){
- valueList.add(getDictLabel(value, type, defaultValue));
- }
- return StringUtils.join(valueList, ",");
- }
- return defaultValue;
- }
- public static String getDictValue(String label, String type, String defaultLabel){
- if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(label)){
- for (Dict dict : getDictList(type)){
- if (type.equals(dict.getType()) && label.equals(dict.getLabel())){
- return dict.getValue();
- }
- }
- }
- return defaultLabel;
- }
JSP页面中使用:
- <td>
- ${fns:getDictLabel(preparationManage.preparationMode, 'samplingMode', '')}
</td>
JSP自定义tld方法标签的更多相关文章
- 使用自定义tld标签简化jsp的繁琐操作
最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...
- JSP自定义标签(标签处理器 tld文件)
标签的形式如下,标签处理器就是处理JSP页面中的标签的属性和内容,定义好之后就跟使用JSTL一样 <标签名 属性名="属性值" 属性名="属性值"> ...
- Jsp自定义标签,配置tld文件
Program:Jsp自定义标签,.tld文件的配置 1 <?xml version="1.0" encoding="UTF-8" ?> 2 3 & ...
- [JSP]自定义标签库taglib
自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...
- JSP自定义标签/自定义标签打包
有这样一个业务需求: 当我们在编辑某个用户时,需要设置该用户的角色,在转到编辑页面时,就需要自动勾选上该用户已经选择的角色,如下图: 当我们点击编辑时,会查询用户详细信息,以及角色集合传到编辑页面. ...
- JSP 自定义标签
0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...
- JSP自定义标签开发入门
一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...
- javaweb学习总结(二十三)——jsp自定义标签开发入门
一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...
- 一个简单的jsp自定义标签
学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...
随机推荐
- 功放TAS5719耳机POP noise分析 对策
驱动功放时,遇到POP noise 是常见的问题,以前遇到此问题,首先想到的对策就是mute the output.本人一直来对此种解法感觉不爽,心里不快.最近遇到开机时耳机有很强的POP,决定好好研 ...
- http请求头和相应头的作用
请求头(Request Headers) Accept:application/json, text/plain, */* Accept-Encoding:gzip, deflate Accept-L ...
- noip模拟赛#39
昨晚打开的题想了一会发现都不会后决定慢慢想.然后早上开校会的时候莫名其妙的都想出来了... T1:m=100,ai=50000,i<=5.1到m的数每个数只能用一次,判断是否能够有这些数的某些数 ...
- Android(java)学习笔记91:Eclipse中代码提示去掉@override,不然就报错!
1. Eclipse中提示去掉@Override 把项目下载下来后有@Override的注释的方法会报错,如果把@Override去掉就不报错了.经过查阅后发现:@override注释在jdk1.5环 ...
- 【洛谷2152】[SDOI2009] SuperGCD(Python好题)
点此看题面 大致题意: 给你两个长度\(\le10000\)的正整数,让你求它们的\(gcd\). Python 高精请绕道. 这题的正解应该是Python. 对于这种高精题,肯定是Python最方 ...
- 【转】CentOS 7.0 安装Redis 3.2.1详细过程和使用常见问题
http://www.linuxidc.com/Linux/2016-09/135071.htm 环境:CentOS 7.0 Redis 3.2.1 Redis的安装与启动 这里我把Redis放在/h ...
- 简单ssh
#!/usr/bin/env python #-*- coding:utf-8 -*- # datetime:2019/5/22 14:20 # software: PyCharm #服务端 impo ...
- 拷贝时间测试=cudamelloc+cudahostalloc
/* * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. * * NVIDIA Corporation and its lic ...
- Java中的异常处理从概念到实例
1.概念 采用新的异常处理机制 在以往的程序开发过程中,经常采用返回值进行处理.例如,在编写一个方法,可以返回一个状态代码,调用者根据状态代码判定出错与否.若状态代码表示一个错误,则调用这进行相应的处 ...
- 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包
今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, 在网上搜了一下,这个问题是因为web项目没有添加服务器导致的. 配置tomec ...