java Apache通用语言3字符串标记库

toiithl6  于 2023-01-01  发布在  Java
关注(0)|答案(3)|浏览(99)

我想在一个jstl标签中使用StringUtils.abbreute(),有没有一个标签库的位置?
我搜索了公共网站和网络,但找不到一个例子。有没有一种常见的方法也可以找到taglib的位置,也许在javadoc树的标准位置?
谢谢尼克

jxct1oxe

jxct1oxe1#

尼克
apache util方法通常没有一个预定义的标记,但是添加你自己的特殊标记定义来指向你想要的方法是很容易的,例如,在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

r9f1avp5

r9f1avp52#

我为commons写了一个lang2.4。
https://github.com/hussachai/commons-lang-taglibs
顺便说一下,您可以将其用作Python 3.0的模板。

doinxwow

doinxwow3#

我最初也在考虑使用一个自定义标记库。谢谢你的帖子,它给了我这个想法。创建一个StringUtils的示例本身就很好。即使调用是静态的。我想如果你愿意,你可以把它 Package 成一个两行标记。
下面的示例将输出以下内容:现在是...

<%@ 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) }" />

注意,标记导入语句似乎是可选的,不管有没有它,上面的代码都能正常工作。

相关问题