I’m trying to implement a custom truncate converter, which truncates a string at a given index and adds a continuation symbol. The converter works fine, only when i hard code the parameters, as they are not being passed to the backend. What am I doing wrong?
The parameters are properties of the converter class:
@FacesConverter(value = TruncateConverter.CONVERTER_ID)
public class TruncateConverter implements Converter, StateHolder
{
public static final String CONVERTER_ID = "bla.blablabla.Truncate";
private int truncateIndex;
private String contSymbol;
Here is how i’m using the converter (or trying to):
<h:outputText id="news-text-left" value="#{newsListBean.newsList_teaser.text}">
<f:converter converterId="bla.blablabla.Truncate" truncateIndex="150" contSymbol="..." />
</h:outputText>
I googled around for quite a bit and wasn’t able to find a single example of a JSF2 converter with parameters… Thank you guys for your help, really appreciate it!
You may take a look at JSF2.0 sources. For example DateTimeConverter… JSF sources available here in svn reposotory: https://svn.java.net/svn/mojarra~svn/trunk
IMO creating such converter is not easy. It also required to create converter tag to register converter.
Other way to pass some data to converter is attibutes. So You can write
Than call to
component.getAttributes().get("truncateIndex");in converter code.