Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

MyFaces

...

Commons

...

Converters

...

contains

...

some

...

useful

...

converters

...

not

...

provided

...

by

...

the

...

spec,

...

and

...

a

...

base

...

class

...

for

...

create

...

custom

...

converters

...

using

...

myfaces-builder-plugin.

...

This

...

base

...

class

...

(

...

org.apache.myfaces.commons.converter.ConverterBase

...

)

...

allow

...

use

...

ValueExpressions

...

and

...

in

...

2.0

...

version

...

provides

...

an

...

implementation

...

of

...

StateHelper.

...

This

...

is

...

useful

...

in

...

cases

...

where

...

parameters

...

for

...

the

...

converter

...

are

...

bound

...

to

...

ValueExpression

...

instance

...

that

...

are

...

evaluated

...

at

...

runtime.

...

By

...

default,

...

converter

...

parameters

...

are

...

evaluated

...

on

...

build

...

time

...

(the

...

first

...

time

...

the

...

view

...

is

...

built),

...

so

...

they

...

cannot

...

change

...

over

...

the

...

time

...

(further

...

web

...

postback

...

requests).

...

To

...

understand

...

this,

...

take

...

a

...

look

...

at

...

this

...

example:

Code Block
xml
xml


{code:xml}
<h:form id="form1">
    <h:messages showDetail="false" showSummary="true" ></h:messages>
    <h:panelGrid columns="3">

        <h:outputLabel for="type" value="Insert a type" />
        <h:selectOneMenu id="type" immediate="true" value="#{numberBean.type}" >
            <f:selectItem itemLabel="number" itemValue="number"/>
            <f:selectItem itemLabel="currency" itemValue="currency"/>
            <f:selectItem itemLabel="percent" itemValue="percent"/>
        </h:selectOneMenu>
        <h:message for="type" styleClass="error" />

        <h:outputLabel for="number1" value="Insert a number" />
        <h:inputText id="number1" value="#{numberBean.numberMap['number1']}" required="true">
            <mcc:convertNumber destType="java.lang.Double" type="#{mc:findComponent('form1:type').value}"/>
        </h:inputText>
        <h:message for="number1" styleClass="error" />

        <h:commandButton id="validateButton"
         value="#{example_messages['button_submit']}"
         action="#{numberBean.submit}" />

    </h:panelGrid>
</h:form>
{code}

It

...

is

...

a

...

<h:

...

selectOneMenu> that

...

allows

...

you

...

to

...

choose

...

a

...

type

...

that

...

is

...

then

...

read

...

by

...

a

...

converter.

...

This

...

can't

...

work

...

with

...

<f:

...

convertNumber>,

...

because

...

the

...

ValueExpression

...

on

...

type

...

is

...

evaluated

...

at

...

build

...

time.

...

But

...

in

...

this

...

case,

...

<mcc:

...

convertNumber> evaluate

...

them

...

each

...

time

...

the

...

conversion

...

occur.

...

Note

...

the

...

immediate="true"

...

in

...

<h:

...

selectOneMenu> makes

...

the

...

value

...

of

...

the

...

component

...

be

...

evaluated

...

before

...

the

...

conversion

...

over

...

the

...

input

...

text.

...

Also,

...

in

...

this

...

project

...

you

...

can

...

found:

...

...

  • converter

...

  • with

...

  • alternate

...

  • representations

...

  • of

...

  • true

...

  • false

...

  • (yes/no),

...

  • (1/0),

...

  • and

...

  • (way/no

...

  • way).

...

  • <mcc:convertDateTime> : Simple convert that overrides the spec DateTimeConverter and uses TimeZone.getDefault()

...

  • as

...

  • the

...

  • base

...

  • timezone,

...

  • rather

...

  • than

...

  • GMT.

...

  • Convert

...

  • date

...

  • time

...

  • using

...

  • normal

...

  • system

...

  • timezone

...

  • like

...

  • it

...

  • should.

...

  • In

...

  • JSF

...

  • 2.0

...

  • a

...

  • new

...

  • param

...

  • for

...

  • enable

...

  • this

...

  • behavior

...

  • for

...

  • f:convertDateTime

...

  • was

...

  • created

...

  • called

...

  • javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE.

...

  • <mcc:convertEnum> : Alternate enum converter.
  • <mcc:convertNumber> : Converter which uses either the manually set destType or the value binding to determine the correct destination type to convert the number to This tag creates a number formatting converter and associates it with the nearest parent UIComponent. It uses either the manually set destType or the value binding to determine the correct destination type to convert the number to.