我有一个名为" ABC.properties"的属性文件。具有诸如
之类的值A="APPLE"
B="BALL"
C="CAT"
现在我需要获取这些值并加载到我的UI中。迭代然后需要加载,因为在那个属性文件中可能有超过50个值。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
在zk.xml文件中,提供您想要阅读的属性文件的路径。
<zk>
<system-config>
<label-location>/path/to/ABC.properties</label-location>
</system-config>
</zk>
如果你想在zul文件中阅读它们,例如你想要显示值为A的标签,那么
< label value="${labels.A}" />
如果要在侦听器类中读取属性文件的值,请执行
Labels.getLabel("A");
答案 1 :(得分:1)
首先,我不知道属性文件中是否有更多项目需要提取。
注意:多个属性文件都以这种方式呈现,并且可以在同一个地图中访问
如果是的话:
使用小节转换密钥:
FRUIT.APPLE = apple
FRUIT.ORANGE = orange
TOYS.BALL = ball
TOYS.DOLL = doll
等等。
接下来是@BhushanPatil已经提到过:
在zk.xml文件中,提供您想要阅读的属性文件的路径。
<zk>
<system-config>
<label-location>/path/to/ABC.properties</label-location>
</system-config>
</zk>
然后,您在Labels下有getSegmentedLabels
方法
这是我们将使用的方法。
因此,如果您只想在zul中声明它,那么下一步就是您必须做的事情:
<?xel-method
prefix="prop" name="all" class="org.zkoss.util.resource.Labels"
signature="java.util.Map getSegmentedLabels()"?>
<vlayout forEach="${prop:all().get('FRUIT')}">
<label value="${each.key} : ${each.value}"/>
</vlayout>
Xel-method用于声明静态方法(在ZK 8之前访问静态方法的唯一方法)。
现在我们想要获取所有FRUIT
标签,因此我们使用Xel方法名称getSegmentedLabels
调用all()
。
这将返回Map<String,Object>
所有标签所在的位置
我们只对FRUIT
小节感兴趣,因此我们得到了密钥FRUIT
背后的值
这个对象又是一个Map<String,Object>
,它包含FRUIT
下的每个键
在此示例中,它包含&lt;&#39; APPLE&#39; apple&#39;&gt;,&lt;&#39; ORANGE&#39;&#39; orange&#39;&gt;。< / p>
接下来我们需要做的是迭代Map
并显示Map
的所有值。
我们使用forEach
attribute.来执行此操作
因此,each
对象的值现在是类Entry<String,Object>
的对象
现在唯一要显示的是显示值,Entry.getValue()
。