带有注入消息的组件范围服务

时间:2011-08-23 00:34:11

标签: tapestry

我知道有关Tapestry服务/资源的一些特殊内容,例如Request,Messages等,它们仅在组件呈现的上下文中可用。

我需要创建一个大量使用消息存储的服务,并且仅在组件呈现的范围内可用。

有人可以解释我如何正确配置此服务,以便每次使用时都可以使用适当的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 个答案:

答案 0 :(得分:1)

结果是最好的解决方案是将消息对象作为参数传递给另一个服务的方法:

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

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