0
我在玩wicket的窗体输入组件。我试图把一个enum
到DropDownMenu
:Wicket资源 - 找不到字符串?
public enum Choice { ONE, TWO, THREE }
cz.oz.wicket.pages.form.FormPage.java
--------------
.add(new DropDownChoice("choice",
Arrays.asList(Choice.values()), new EnumChoiceRenderer())
)
,并增加了属性文件:
cz.oz.wicket.pages.form.FormPage.properties
--------------
Choice.ONE = Jedna
Choice.TWO = Dvě
Choice.THREE = Tři
据我读过,它应该工作。
但我得到:
java.util.MissingResourceException: Unable to find property: 'Choice.ONE'
at org.apache.wicket.Localizer.getString(Localizer.java:344)
at org.apache.wicket.Localizer.getString(Localizer.java:100)
at org.apache.wicket.markup.html.form.EnumChoiceRenderer.getDisplayValue(EnumChoiceRenderer.java:82)
at org.apache.wicket.markup.html.form.EnumChoiceRenderer.getDisplayValue(EnumChoiceRenderer.java:39)
at org.apache.wicket.markup.html.form.AbstractChoice.appendOptionHtml(AbstractChoice.java:384)
at org.apache.wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:361)
at org.apache.wicket.Component.renderComponent(Component.java:2619)
...
有什么不对?
感谢,
Ondra
你是对的 - 谢谢:) 顺便说一句 - 为什么不DropDownChoice的构造函数将自身设置为renrerer的组件引用(如果该构造没有参数)?我认为这不会伤害任何东西。我想提交RFE。 WDYT? – 2010-07-11 23:50:14
但是,它会寻找与DropDownChoice相关的属性文件,它必须在wicket库中找到。而且没有办法预测你想要的特性与你的特定枚举相关联。 您可能会专门为此枚举定义DropDownChoice的子类,并使子类拥有资源,这将允许您将这些东西整齐地绑定在一起。 – 2010-07-12 00:27:36
好点!我仍然习惯了Wicket聪明地使用Java的特性。谢谢。 – 2010-07-17 00:07:11