>I'm trying to format the output of some numbers.  Before, the way I 
>would do this was:
>
><h:outputText value="#{myBean.score}">
>  <f:convertNumber maxFractionDigits="1" />
></h:outputText>
>
>I've tried this with the clay-config.xml with:
>
>  <component jsfid="outputScore" extends="outputText">
>    <element renderId="0" jsfid="convertNumber">
>      <attributes>
>        <set name="maxFractionDigits" value="1" />
>      </attributes>
>    </element>
>  </component>
>

You have a couple options:
<component jsfid="outputScore" extends="outputText">
    <converter jsfid="convertNumber">
      <attributes>
        <set name="maxFractionDigits" value="1" />
      </attributes>
    </converter>
</component>

or:
<component jsfid="outputScore" extends="outputText">
   <attributes>
      <set name="converter" value="javax.faces.Number" />
   </attributes>
</component>

But, I missed many of the base converter's.  The defaults are defined in the 
/META-INF/clay-config.xml file in the clay archive.
If you find some missing from the JSF spec., please post your definition in a 
bugzilla ticket and I'll add it to the base clay config (javax.faces.Number is 
missing)

>But that gives me a NPE with the message "The component identified by 
>jsfid convertNumber could not be found."  Was the f:convertNumber 
>component not mapped on purpose or is this a simple oversight?
>
>I tried creating my own mapping using:
>
>  <component jsfid="numberConverter" componentType="javax.faces.Number" >
>    <attributes>
>      <set name="currencyCode" bindingType="Early" />
>      <set name="currencySymbol" bindingType="Early" />
>      <set name="maxFractionDigits" bindingType="Early" />
>      <set name="minFractionDigits" bindingType="Early" />
>      <set name="maxIntegerDigits" bindingType="Early" />
>      <set name="minIntegerDigits" bindingType="Early" />
>      <set name="pattern" bindingType="Early" />
>      <set name="groupingUsed" bindingType="Early" />
>      <set name="integerOnly" bindingType="Early" />
>    </attributes>
>  </component>
> 
>But that throws an exception saying that javax.faces.Number is an 
>undefined component type.  Any ideas what I did wrong?
>
The converter component definition is correct and this one is missing from the 
base clay config file.  If you want to apply this converter to a component, you 
need to nest it under the component as a "converter" node or provide the 
componentType (registered name of the converter) as a converter attribute of 
the target component (see example above).



>Thanks,
>Rich

Reply via email to