![](/img/trans.png)
[英]NoClassDefFoundError: org/apache/commons/lang3/StringUtils
[英]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
我最初也在考慮使用自定義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.