2011-08-23 74 views
1

我知道,tapestry服務/資源(如請求,消息等)只有在組件呈現的上下文中才可用。帶注入消息的組件範圍服務

我需要創建一個服務,大量使用消息存儲,並且僅在組件呈現的範圍內可用。

有人可以解釋我如何正確配置此服務,以便我可以在每次使用時使用佔用的Messages對象創建它?

如(我知道這是行不通的):

public class MyServiceImpl 
{ 
    @Inject private Messages messages; 

    @Override 
    public String getSomeMessage(Object someParameter) 
    { 
     ... 
    } 
} 

,然後我可以使用它像這樣:

public class MyComponent 
{ 
    @Inject 
    @Parameter 
    private MyService myService; 
} 

TML:

<p>${myService.getSomeMessage('someParameter')}</p> 

謝謝,保羅。

回答

1

原來的最佳解決方案是要通過消息對象到另一個服務的方法作爲參數:

@Inject @Property private MyService myService; 
@Inject @Property private Messages messages; 

<t:output value="myService.getSomething(messages)" />