Есть ли какой-то трюк для использования @PageActivationContext без Hibernate в Tapestry? У меня на следующей странице:Использование @PageActivationContext без спящего режима
public class DisplayTopic {
@PageActivationContext
private Topic topic;
}
Это в моем AppModule класс:
@Contribute(ValueEncoderSource.class)
public static void contributeValueEncoderSource(MappedConfiguration<Class<Topic>, ValueEncoderFactory<Topic>> configuration) {
configuration.addInstance(Topic.class, TopicEncoder.class);
}
И, наконец, это как мой TopicEncoder:
public class TopicEncoder implements ValueEncoder<Topic>, ValueEncoderFactory<Topic> {
@Override
public String toClient(Topic value) {
return value.getId();
}
@Override
public Topic toValue(String clientValue) {
return Start.data.getLocator().getTopicById(clientValue);
}
@Override
public ValueEncoder<Topic> create(Class<Topic> type) {
return this;
}
}
К сожалению, я до сих пор получаю следующее исключение :
Exception in method null, parameter #1: org.apache.tapestry5.ioc.util.UnknownValueException: Could not find a coercion from type java.lang.String to type Main.Topic.
I'v е через документацию несколько раз, и не могу понять, что я делаю неправильно!
Попробуйте ввести 'TypeCoercer' для преобразования' Str' в 'Тема'. –
Я попытался воспроизвести вашу ошибку, но я не могу! Меня устраивает. Какую версию Tapestry5 вы используете? Можете ли вы опубликовать тему «Тема»? Он выглядит так, как Тема является подклассом Main. Вы пытались переместить тему в свой собственный файл java? –