gpt4 book ai didi

java - Tapestry属性文件+注入(inject),实现对参数[n]的支持

转载 作者:行者123 更新时间:2023-12-02 07:44:20 29 4
gpt4 key购买 nike

我对 Tapestry 相当陌生。在 Tapestry 项目中就是这样的情况

参数位于X.properties文件中,例如

SomeService.urlDoOnething=http://etc/etc1
SomeService.urlDoOtherthing=http://etc/etc2

1.java

@Inject
@Value("SomeService.urlDoOnething")
private String SomeServiceurlDoOnething
@Inject
@Value("SomeService.urlDoOtherthing")
private String SomeServiceurlDoOtherthing

2.java

request = new ClientRequest(SomeServiceurlDoOnething); ....

我必须实现 SomeService[N].url*thing 参数。用户可以从组合框中选择服务(还要考虑如何优雅地实现组合框)。

因为我不太了解 Tapestry ,并且搜索 docs/google 还没有很有帮助..也许我可以在这里找到好的建议 - 我怎样才能以最优雅/最少编码的方式做到这一点?

最佳答案

我不确定我完全理解你的问题,你能进一步解释一下这部分吗:

I must implement SomeService[N].url*thing paremeters. User can choose service from combobox (thinking also how to implement combobox thing elegantly).

我认为我确实理解的是你的问题有两个阶段:

  1. 如何提取属性文件
  2. 如何通过注入(inject)访问键/值对

解决1:

将以下内容添加到您的模块 (AppModule.java):

public void contributeSymbolSource(OrderedConfiguration<SymbolProvider> providers)
{
providers.add("ExtraConfiguration", new ClasspathResourceSymbolProvider("extra.properties"), "after:SystemProperties", "before:ApplicationDefaults");
}

解决2:

在 Page.java 中,使用 @Symbol 而不是 @Value:

@Inject
@Symbol("SomeService.urlDoOnething")
private String urlDoOnething;

关于java - Tapestry属性文件+注入(inject),实现对参数[n]的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098762/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com