A quick example of declaring an enum type and using it as a parameter in a Tapestry component.

Declaring the enum type

     public enum Day {
          SUNDAY, MONDAY, TUESDAY, WEDNESDAY, 
          THURSDAY, FRIDAY, SATURDAY 
     }

Declaring the enum parameter in a component class

    @Parameter
    private Day day;

Adding the String To Enum type coercion

In order to use literal string values for your enum parameter in your component, add a coercion from String to your enum class by adding the following code to your module class

     public static void contributeTypeCoercer(Configuration<CoercionTuple> configuration) {
         configuration.add(new CoercionTuple<String, Day>(
             String.class,
             Day.class,
             StringToEnumCoercion.create(Day.class)
         ));
     }

Passing a literal string value to your enum parameter

    <t:mycomponent day="literal:WEDNESDAY" />
  • No labels