当前位置: 首页 > 知识库问答 >
问题:

apache commons lang3 stringutils taglib

孔寒
2023-03-14

我想在jstl标签中使用StringUtils.abbreviate(),是否有一个taglib位置?

我已经搜索了公共网站和网络,但找不到一个例子。有没有一种常见的方法来找到taglib位置,也许是在javadoc树的标准位置??

谢谢尼克

共有3个答案

阎乐池
2023-03-14

我最初也在考虑使用定制的taglib。谢谢你的帖子,它给了我这个想法。创建StringUtils实例本身就可以很好地工作。即使电话是静态的。如果你愿意的话,我想你可以把它包装成两行的标签。

下面的示例将输出以下内容:现在是t。。。

<%@ tag import="org.apache.commons.lang3.StringUtils" %>
<jsp:useBean id="StringUtils" class="org.apache.commons.lang3.StringUtils" />
<c:out value="${StringUtils.abbreviate('Now is the time for all good', 8) }" />

注意,tag import语句似乎是可选的。上面的代码在有或没有它的情况下都适用于我。

邢献
2023-03-14

我为commons lang 2.4写了一个。

https://github.com/hussachai/commons-lang-taglibs

顺便说一下,你可以把它用作3.0的模板。

钱元徽
2023-03-14

尼克,

apacheutil方法通常没有预定义的标记,但是添加自己的特殊标记定义来指向所需的方法很容易。例如,将本地标记库定义添加到web。xml文件:

<jsp-config> 
    <taglib> 
        <taglib-uri>mytags</taglib-uri> 
        <taglib-location>/WEB-INF/jsp/mytaglib.tld</taglib-location> 
    </taglib> 
</jsp-config>

您的mytaglib.tld文件将如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tlib-version>1.0</tlib-version>
    <function>
        <description>Exposes the abbreviate() function from Apache StringUtils</description>
        <name>abbreviate</name>
        <function-class>org.apache.commons.lang.StringUtils</function-class>
        <function-signature>java.lang.String abbreviate(java.lang.String,
                            int)</function-signature>
    </function>
</taglib>

在您的JSP中,您可以使用新的自定义标记:

<%@ taglib prefix="mytags" uri="mytags" %>
...
<c:out value="${mytags:abbreviate(myString, 5)"/>

这应该对你有用。有关自定义标签的更多信息,请阅读以下内容:http://docs.oracle.com/javaee/5/tutorial/doc/bnalj.html

 类似资料:

相关问答

相关文章

相关阅读