Checkout the Apache Commons Lang (StringUtils.abbreviate(java.lang.String str, int maxWidth)) or write yourself the method.
In order to directly access your method in the frontend (facelets), you can create an EL Function. The referece demonstrates, how you can very easily include the static methods in an ELFunctions library (automatic dynamic registration).
The java method would be trivial.
I would use a combination of rich:toolTip and only render it if the text is abbreviated.
This way the user could mouse over and see the full text.
Combining a Seam component and Facelets template should work well.
Or use Richfaces CDK.
It would be nice to have
<custom:abbreviateText value="my text" length="10" />