【问题标题】:apache commons lang3 stringutils taglibapache commons lang3 stringutils taglib
【发布时间】:2012-12-26 14:08:31
【问题描述】:

我喜欢在 jstl 标签中使用 StringUtils.abbreviate(),有没有一个 taglib 位置?

我搜索了公共站点和网络,但找不到示例。是否还有一种常见的方法来查找 taglib 位置,也许是在 javadoc 树的标准位置??

谢谢! 尼克

【问题讨论】:

    标签: java jakarta-ee jstl apache-commons apache-stringutils


    【解决方案1】:

    我最初也在考虑使用自定义标记库。谢谢你的帖子,它给了我这个想法。创建 StringUtils 的实例本身就可以正常工作。甚至认为电话是静态的。我想如果你愿意的话,你可以把它包装成一个两行标签。

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

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

    请注意,标签导入语句似乎是可选的。上面的代码不管有没有都对我有用。

    【讨论】:

    • 如果使用“org.apache.commons.lang.StringUtils”,它甚至可以在 Jelly 脚本中工作而无需导入。谢谢!
    【解决方案2】:

    我为 commons-lang 2.4 写了一个。

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

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

    【讨论】:

      【解决方案3】:

      尼克,

      在 apache util 方法中通常没有预定义的标签,但很容易添加您自己的特殊标签定义以指向您想要的方法。例如,将本地 taglib 定义添加到您的 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

      【讨论】:

        猜你喜欢
        • 2016-05-17
        • 2018-04-03
        • 2018-05-02
        • 2021-05-20
        • 2016-12-28
        • 1970-01-01
        • 2018-04-04
        • 2018-12-08
        • 2017-09-16
        相关资源
        最近更新 更多