Id like to use StringUtils.abbreviate() inside a jstl tag, is there a taglib location for this?
Ive searched the commons site and the web but an unable to find an example. Is there a common way to find taglib locations also, maybe in a standard location of a javadoc tree??
Thanks! Nic
Nic,
There often isn't a predefined tag to get at the apache util methods, but it's easy to add your own special tag definitions to point to the method you want. For example, add a local taglib definition to your web.xml file:
<jsp-config>
<taglib>
<taglib-uri>mytags</taglib-uri>
<taglib-location>/WEB-INF/jsp/mytaglib.tld</taglib-location>
</taglib>
</jsp-config>
Your mytaglib.tld file will look something like this:
<?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>
In your JSP, you can then use your new custom tag:
<%@ taglib prefix="mytags" uri="mytags" %>
...
<c:out value="${mytags:abbreviate(myString, 5)"/>
That should do it for you. For more info on custom tags, you can read here: http://docs.oracle.com/javaee/5/tutorial/doc/bnalj.html
I wrote one for commons-lang 2.4.
https://github.com/hussachai/commons-lang-taglibs
You can use it as a template for 3.0 by the way.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With