文档章节

解决自定义EL函数Eclipse报the function is undefined错误

Harmel
 Harmel
发布于 2015/08/05 18:14
字数 373
阅读 1047
收藏 1

写一个小项目时遇到需要将一个长字符串转成小段加点点点的形式显示,马上想到了定义一个自定义函数

package cn.harmel.common.util;

/**
 * 操作字符串的工具类
 * 
 * @author Harmel
 *
 */
public final class StringUtils {

    private StringUtils() {

    }
    
    public static String transform(String str, int length) {
        if (str.length() > length) {
            return str.substring(0, length) + "...";
        }
        return str;
    }

}

按照惯例,需要在/WEB-INF下的任意目录(tags除外)定义一个tld文件,我定义在/WEB-INF/tag里

<?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>harmel's tag</description>
    <tlib-version>1.0</tlib-version>
    <short-name>h</short-name>
    <uri>http://www.harmel.cn/tag</uri>
    
    <function>
        <name>subStr</name>
        <function-class>cn.harmel.common.util.StringUtils</function-class>
        <function-signature>java.lang.String transform(java.lang.String, int)</function-signature>
    </function>
    
</taglib>

大功告成,马上在JSP页面中导入标签使用

<%@ taglib prefix="h" uri="http://www.harmel.cn/tag" %>
${h:subStr("123456789012345", 10)}

测试通过接着把该函数用到了其他页面中,修改了文件Eclipse立马build workspace后发现在/WEB-INF下的JSP页面上面都有个大红叉叉,而其/WEB-INF外的JSP页面却没有。提示说the function h:subStr is undefined但是部署运行却没有问题。现在的Tomcat容器已经可以自动搜索/WEB-INF下的tld了,想想可能是Eclipse不够智能为了解决强迫症只好在web.xml中给出了标签定义:

<jsp-config>
    <taglib>
        <taglib-uri>http://www.harmel.cn/tag</taglib-uri>
        <taglib-location>/WEB-INF/tag/harmel.tld</taglib-location>
    </taglib>
</jsp-config>

成功将强迫症解决掉

© 著作权归作者所有

共有 人打赏支持
Harmel
粉丝 9
博文 33
码字总数 14582
作品 0
武汉
程序员
私信 提问
6个经典的JavaScript报错分析

代码报错是经常发生的一件事,我们要确定是什么原因造成的,以及如何避免错误。 1. Uncaught TypeError: Cannot read property 该错误说明没有某个属性,一般是该属性前面的值是undefined或者...

Web前端精髓
2018/02/02
0
0
maven 建websocket项目,总是报ERROR: undefined错误?求解

maven 建websocket项目,总是报ERROR: undefined错误?原来就是这样的错误,成功过,现在再写,又不过。估计是依赖包的问题,但是又不知道怎么解决。 开发环境:tomcat 8.0.12 eclipse luna ...

阶前梧叶
2014/10/08
3.1K
4
深入解析JS变量声明和函数声明提升

很多时候,在直觉上,我们都会认为JS代码在执行时都是自上而下一行一行执行的,但是实际上,有一种情况会导致这个假设是错误的。 按照传统眼光,console.log(a)输出的应该是undefined,因为v...

前端攻城小牛
2018/12/31
0
0
Windows 下64位TDM-GCC-64 g++自定义库的生成及使用

一、自定义库的生成 生成szlib.o文件: 生成libszlib.a文件: 查看库文件中的函数: 解决方法: 环境:Windows 2016 cmd 参考: undefined reference to `std::ios_base::Init::Init() https:...

SamXIAO
02/09
0
0
php在windows下能够执行,但是到了linux上面执行不了

是这样的,我在a.php文件里面已用了一个文件messagemodel.php,并调用了这个文件里面的一个方法getMessageList,见下面代码: a.php: messagemodel.php: a文件中调用这个方法的代码: 这在w...

哈喽旺仔
2013/11/25
2.8K
13

没有更多内容

加载失败,请刷新页面

加载更多

AWS的自动部署工具codedeploy 负载均衡器和github

Elastic Load Balancing 提供了三种可用于 CodeDeploy 部署的负载均衡器:Classic Load Balancer、Application Load Balancer 和 Network Load Balancer。 传统负载均衡器 路由和负载均衡在传...

守护-创造
23分钟前
2
0
Docker 使用简介

Docker 是使用 GoLang 开发的开源容器引擎,可以方便的打包开发好的应用,然后分发到任意 linux 主机上。 与传统的虚拟机相比拥有以下优势: 高效的系统资源利用率 由于不需要进行硬件虚拟和...

YanWen
26分钟前
1
0
linux多线程编程,你还在用sleep么?用pthread_cond_timedwait吧

gnal(&cond); pthread_mutex_unlock(&mutex); printf(“Wait for thread to exit\n”); pthread_join(thread, NULL); printf(“Bye\n”); return 0; } 说明(翻译摘要中提供的连接,翻译的不好......

shzwork
34分钟前
1
0
MacOS源码编译安装 PostgreSQL

编译环境 Mac OSX 下只要装了 Xcode 就行,所有编译需要的工具和类库都有了。CentOS 下需要安装下面的软件包。 $ sudo yum install make gcc readline-devel zlib-devel flex bison 如果是从...

FeanLau
44分钟前
2
0
Spring Cloud Alibaba基础教程:Sentinel使用Apollo存储规则

上一篇我们介绍了如何通过Nacos的配置功能来存储限流规则。Apollo是国内用户非常多的配置中心,所以,今天我们继续说说Spring Cloud Alibaba Sentinel中如何将流控规则存储在Apollo中。 使用...

程序猿DD
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部