簡體   English   中英

apache commons lang3 stringutils taglib

[英]apache commons lang3 stringutils taglib

我喜歡在jstl標簽內使用StringUtils.abbreviate(),是否有taglib位置?

我搜索了公共網站和網站,但無法找到一個例子。 是否有一種常見的方法來查找taglib位置,也許在javadoc樹的標准位置?

謝謝! 尼克

尼克,

通常沒有預定義的標簽來獲取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

我為commons-lang 2.4寫了一個。

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

順便說一句,您可以將它用作3.0的模板。

我最初也在考慮使用自定義taglib。 謝謝你的帖子,它給了我這個想法。 創建一個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) }" />

請注意,標記import語句似乎是可選的。 無論是否有上述代碼都適用於我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM