gpt4 book ai didi

java - 使用带有 JSF 标记的 Apache 配置时出现问题

转载 作者:行者123 更新时间:2023-12-01 15:06:19 26 4
gpt4 key购买 nike

我正在开发一个项目,但我对 JSF 不太熟悉,所以请纠正这个问题中的任何空白。

我有一个保存域值的属性文件......例如

domain=.com
domain=.net

在我的 Bean 中我有这个

private String domain;
private String[] domainSelection;

public void initProp(){

try {
Configuration config = new PropertiesConfiguration("prop.properties");
domainSelection = config.getStringArray("domain");

} catch (ConfigurationException e) {
Log.error("Error");
}

}

在带有 JSF 的 .jsp 页面中

<rich:select id="domain" value="#{Bean.domain}"                                               
required="true">
<f:selectItems itemValue="#{Bean.domainSelection}" />
</rich:select>

当我调试这个时,我在domainSelection 中得到两个值,但我需要将它们传递给JSF,但我不知道如何做到这一点。

最佳答案

很抱歉最初的答案我完全错过了这个问题。

private List<SelectItem> domains = new ArrayList<SelectItem>();
//for each domain
domains.add("com",firstFromDomainSelection);
domains.add("net",secondFromDomainSelection);

<f:selectItems value="#{Bean.domains}" />

因此这需要 getDomains 来检索它们。

编辑:

我相信只要你再读一下属性文件就可以了。需要记住的一件事是该文件可能已经位于 .war 中,因此您必须找到一种方法来重新添加或仅将其添加到部署的文件夹中。

每次 View 想要获取列表时,它都会调用getDomains(),这意味着我们应该有逻辑在每次调用时提取属性。由于文件 IO,可能会对性能造成轻微影响。

private List<SelectItem> domains;
private Configuration config = new PropertiesConfiguration("prop.properties"); // with accessors

public List<SelectItem> getDomains(){
domains = new ArrayList<SelectItem>();
String[] domainSelection = getConfig().getStringArray("domain");
for(String domain : domainSelection ){
//Define desired logic for the value if its the same (.com) pass the same as value
domains.add( new SelectItem(domain ,domain)); // SelectItem(value, label);
}
return domains;
}

我会做什么

我不会使用属性文件,而是使用域表,然后动态地将这些记录添加到表中,然后将相应地检索它们。当对该 View 有很多请求时,它可能会减慢速度——至少会稍微减慢。另一个需要记住的问题是 apache 是否缓存这些文件。要时刻铭记在心。在我看来,使用数据库表更安全。

关于java - 使用带有 JSF <SelectItems> 标记的 Apache 配置时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12899480/

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