卧槽

我们可以通过tld文件,自定义一个方法标签,以便在页面中使用,目录通常放在WEB-INF下面的tlds文件夹:

引入方式示例,直接在jsp上引入tld标签文件:

  1. <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
  1. fns.tld中的写法:
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2.  
  3. <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  6. version="2.0">
  7.  
  8. <description>JSTL 1.1 functions library</description>
  9. <display-name>JSTL functions sys</display-name>
  10. <tlib-version>1.1</tlib-version>
  11. <short-name>fns</short-name>
  12. <uri>http://java.sun.com/jsp/jstl/functionss</uri>
  13.  
  14. <!-- DictUtils -->
  15. <function>
  16. <description>获取字典标签</description>
  17. <name>getDictLabel</name>
  18. <function-class>com.jeeplus.modules.sys.utils.DictUtils</function-class>
  19. <function-signature>java.lang.String getDictLabel(java.lang.String, java.lang.String, java.lang.String)</function-signature>
  20. <example>${fns:getDictLabel(value, type, defaultValue)}</example>
  21. </function>
  22.  
  23. <function>
  24. <description>获取字典标签(多个)</description>
  25. <name>getDictLabels</name>
  26. <function-class>com.jeeplus.modules.sys.utils.DictUtils</function-class>
  27. <function-signature>java.lang.String getDictLabels(java.lang.String, java.lang.String, java.lang.String)</function-signature>
  28. <example>${fns:getDictLabels(values, type, defaultValue)}</example>
  29. </function>
  30.  
  31. <function>
  32. <description>获取字典值</description>
  33. <name>getDictValue</name>
  34. <function-class>com.jeeplus.modules.sys.utils.DictUtils</function-class>
  35. <function-signature>java.lang.String getDictValue(java.lang.String, java.lang.String, java.lang.String)</function-signature>
  36. <example>${fns:getDictValue(label, type, defaultValue)}</example>
  37. </function>
  1. 注:
    function-class就是该方法的实体所在类路径,
  2.  
  3. function-signature就是该方法的方法名,这个方法必须是个static方法。
  1. example就是使用方式写法示例

后台:

  1. public static String getDictLabel(String value, String type, String defaultValue){
  2. if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(value)){
  3. for (Dict dict : getDictList(type)){
  4. if (type.equals(dict.getType()) && value.equals(dict.getValue())){
  5. return dict.getLabel();
  6. }
  7. }
  8. }
  9. return defaultValue;
  10. }
  11.  
  12. public static String getDictLabels(String values, String type, String defaultValue){
  13. if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(values)){
  14. List<String> valueList = Lists.newArrayList();
  15. for (String value : StringUtils.split(values, ",")){
  16. valueList.add(getDictLabel(value, type, defaultValue));
  17. }
  18. return StringUtils.join(valueList, ",");
  19. }
  20. return defaultValue;
  21. }
  22.  
  23. public static String getDictValue(String label, String type, String defaultLabel){
  24. if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(label)){
  25. for (Dict dict : getDictList(type)){
  26. if (type.equals(dict.getType()) && label.equals(dict.getLabel())){
  27. return dict.getValue();
  28. }
  29. }
  30. }
  31. return defaultLabel;
  32. }

JSP页面中使用:

  1.   <td>
  2. ${fns:getDictLabel(preparationManage.preparationMode, 'samplingMode', '')}
    </td>

JSP自定义tld方法标签的更多相关文章

  1. 使用自定义tld标签简化jsp的繁琐操作

    最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...

  2. JSP自定义标签(标签处理器 tld文件)

    标签的形式如下,标签处理器就是处理JSP页面中的标签的属性和内容,定义好之后就跟使用JSTL一样 <标签名 属性名="属性值" 属性名="属性值"> ...

  3. Jsp自定义标签,配置tld文件

    Program:Jsp自定义标签,.tld文件的配置 1 <?xml version="1.0" encoding="UTF-8" ?> 2 3 & ...

  4. [JSP]自定义标签库taglib

    自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...

  5. JSP自定义标签/自定义标签打包

    有这样一个业务需求: 当我们在编辑某个用户时,需要设置该用户的角色,在转到编辑页面时,就需要自动勾选上该用户已经选择的角色,如下图: 当我们点击编辑时,会查询用户详细信息,以及角色集合传到编辑页面. ...

  6. JSP 自定义标签

    0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...

  7. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  8. javaweb学习总结(二十三)——jsp自定义标签开发入门

    一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...

  9. 一个简单的jsp自定义标签

    学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...

随机推荐

  1. 功放TAS5719耳机POP noise分析 对策

    驱动功放时,遇到POP noise 是常见的问题,以前遇到此问题,首先想到的对策就是mute the output.本人一直来对此种解法感觉不爽,心里不快.最近遇到开机时耳机有很强的POP,决定好好研 ...

  2. http请求头和相应头的作用

    请求头(Request Headers) Accept:application/json, text/plain, */* Accept-Encoding:gzip, deflate Accept-L ...

  3. noip模拟赛#39

    昨晚打开的题想了一会发现都不会后决定慢慢想.然后早上开校会的时候莫名其妙的都想出来了... T1:m=100,ai=50000,i<=5.1到m的数每个数只能用一次,判断是否能够有这些数的某些数 ...

  4. Android(java)学习笔记91:Eclipse中代码提示去掉@override,不然就报错!

    1. Eclipse中提示去掉@Override 把项目下载下来后有@Override的注释的方法会报错,如果把@Override去掉就不报错了.经过查阅后发现:@override注释在jdk1.5环 ...

  5. 【洛谷2152】[SDOI2009] SuperGCD(Python好题)

    点此看题面 大致题意: 给你两个长度\(\le10000\)的正整数,让你求它们的\(gcd\). Python​ 高精请绕道. 这题的正解应该是Python. 对于这种高精题,肯定是Python最方 ...

  6. 【转】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 ...

  7. 简单ssh

    #!/usr/bin/env python #-*- coding:utf-8 -*- # datetime:2019/5/22 14:20 # software: PyCharm #服务端 impo ...

  8. 拷贝时间测试=cudamelloc+cudahostalloc

    /* * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. * * NVIDIA Corporation and its lic ...

  9. Java中的异常处理从概念到实例

    1.概念 采用新的异常处理机制 在以往的程序开发过程中,经常采用返回值进行处理.例如,在编写一个方法,可以返回一个状态代码,调用者根据状态代码判定出错与否.若状态代码表示一个错误,则调用这进行相应的处 ...

  10. 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包

    今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, 在网上搜了一下,这个问题是因为web项目没有添加服务器导致的. 配置tomec ...