2014-09-20 96 views
0

在Tapestry中使用@PageActivationContext而沒有Hibernate是否有一些技巧?我有以下頁面:在沒有休眠的情況下使用@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'轉換爲'Topic'。 – 2014-09-20 13:20:12

+0

我試圖重現你的錯誤,但我不能!這個對我有用。你使用的是什麼版本的Tapestry5?你能發佈Topic的實現嗎?它像Loobook一樣是Main的一個子類。你有沒有嘗試將Topic移動到它自己的java文件中? – 2014-09-22 14:45:15

回答

0

你做了什麼看起來應該對我有用。我在這裏猜測總數......但是你使用的是tapestry-cometd還是tapestry-atmosphere?

這個問題會影響https://github.com/uklance/tapestry-cometd/issues/62

的問題已在最新的掛毯的cometd,它並沒有被固定在織錦氛圍。

相關問題