如何为我的表单组件正确创建国际化标签,以便在显示反馈消息时显示国际化字段名称而不是 java 代码中的字段名称?
我读过这个:
https://cwiki.apache.org/WICKET/everything-about-wicket-internationalization.html
以及 wicket 的 xhtml 标签的文档:
https://cwiki.apache.org/WICKET/wickets-xhtml-tags.html
<label wicket:for="name">
<wicket:label>
<wicket:message key="label.name"/>
</wicket:label>
</label>
<input wicket:id="name" type="text" wicket:message="placeholder:label.name" />
这会导致以下错误:
Last cause: Expected close tag for '<wicket:label>' Possible attempt to embed
component(s) '<wicket:message key="label.name"/>' in the body of this
component which discards its body
如果我更换
wicket:message
使用一些任意文本,它会在任何关联的反馈消息中显示文本。(有一个相关的 jira 问题:https://issues.apache.org/jira/browse/WICKET-3903 但是我仍然不明白已经做了什么来解决这个问题以及我必须做什么......)
刚刚发现在java中有一种方法可以做到这一点:
add(new TextField<String>("name").setRequired(true).setLabel(new Model<String>(getString("label.name"))));
是否有可能以更舒适的方式做到这一点?
最佳答案
我刚刚测试了以下内容:
<form wicket:id="form">
<label for="input"><wicket:message key="input">some input</wicket:message></label>
<input wicket:id="input" type="text" name="input">
<input type="submit" value="submit">
</form>
在java类中:
Form<HomePage> form = new Form<HomePage>("form"
, new CompoundPropertyModel<HomePage>(this));
wmc.add(form);
TextField textField = new TextField("input");
textField.setRequired(true);
form.add(textField);
在我提供的属性文件中:
input=SomeInputField
这导致了以下屏幕(如果我将所需字段留空并按提交。
这是你想要的?
关于internationalization - Wicket 中表单组件的国际化标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11393610/