2014-09-20 2 views
0

Есть ли какой-то трюк для использования @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 е через документацию несколько раз, и не могу понять, что я делаю неправильно!

+0

Попробуйте ввести 'TypeCoercer' для преобразования' Str' в 'Тема'. –

+0

Я попытался воспроизвести вашу ошибку, но я не могу! Меня устраивает. Какую версию Tapestry5 вы используете? Можете ли вы опубликовать тему «Тема»? Он выглядит так, как Тема является подклассом Main. Вы пытались переместить тему в свой собственный файл java? –

ответ

0

То, что вы сделали, похоже, что оно должно работать на меня. Я беру здесь общее предположение ... но вы используете гобелен-комет или атмосферу гобелена?

Эта проблема затрагивает как https://github.com/uklance/tapestry-cometd/issues/62

Проблема исправлена ​​в последнем гобелен-cometd, это не было зафиксировано в гобелен-атмосфере.

Смежные вопросы