Tapestry just supports a ValueEncoder for String and Enum. If you want additional encoders you have to implement them yourself:
class LongValueEncoder implements ValueEncoder<Long> { public String toClient(Long value) { return value == null ? "" : value.toString(); } public Long toValue(String clientValue) { try { return new Long(clientValue); } catch (NumberFormatException e) { return null; } } } To use the encoder either add them to your AppModule: public static void contributeValueEncoderSource( MappedConfiguration<Class, ValueEncoderFactory> configuration) { configuration.add(Long.class, new GenericValueEncoderFactory<Long>(new LongValueEncoder())); } or add the encoder directly to your RadioGroup (or Select) components (see http://tapestry.apache.org/tapestry5/tapestry-core/component-parameters.html) See: http://issues.apache.org/jira/browse/TAPESTRY-1598 -- Chris