【问题标题】:Required error messages based on label in html?基于html中标签的必需错误消息?
【发布时间】:2016-06-22 15:39:49
【问题描述】:

我尝试创建一个使用表单和标签的 WicketApplication。

我使用 Wicket 7.3.0,从码头的 maven-quickstart 运行。

我希望反馈消息使用 label 内容,但现在它使用字段名称。我记得在过去的某个时候看到过这个工作,但现在似乎不起作用。也许我依靠一个边缘案例。无论如何,我的问题是这是否是“正确”的方式,或者如果不是,我应该采取不同的做法。

这是我的(测试用例)代码:

HTML

<body>
    <div wicket:id="fp"></div>
    <form wicket:id="f">
        <table>
        <tr><td><label wicket:for="naam"><wicket:message key="Naam"></wicket:message></label></td><td><input wicket:id="naam" /></td></tr>
        <tr><td><label wicket:for="adres"><wicket:message key="Adres"></wicket:message></label></td><td><input wicket:id="adres" /></td></tr>
        <tr><td><label wicket:for="woonplaats"><wicket:message key="Woonplaats"></wicket:message></label></td><td><input wicket:id="woonplaats"/></td></tr>
        </table>
        <a wicket:id="save">Save!</a>
    </form>
</body>

Java

public HomePage(final PageParameters parameters) {
        super(parameters);
        final FeedbackPanel fp = new FeedbackPanel("fp");
        fp.setOutputMarkupId(true);
        this.add(fp);
        Form f = new Form<Void>("f") {
        };
        f.setOutputMarkupId(true);
        f.add(new TextField("naam", Model.of("Rob")).setRequired(true));
        f.add(new TextField("adres", Model.of("Fantasieweg 4")));
        f.add(new TextField("woonplaats", Model.of("Babbelerdam")).setRequired(true));
        // TODO Add your page's components here
        f.add(new AjaxSubmitLink("save", f) {
            @Override
            protected void onAfterSubmit(AjaxRequestTarget target, Form<?> form) {
                target.add(fp);
            }

            @Override
            protected void onError(AjaxRequestTarget target, Form<?> form) {
                // TODO Auto-generated method stub
                target.add(fp);
            }
        });
        this.add(f);
    }

WicketApplication.properties

Required=Veld ${label} is verplicht
Naam=PropertyNaam
Adres=PropertyAdres
Woonplaats=PropertyWoonplaats

【问题讨论】:

  • 不应该 Naam=PropertyNaam 是 naam=PropertyNaam(注意键的第一个小写字符)?
  • @svenmeier 不确定是否需要。生成的 HTML 在标签中有翻译后的值,所以我认为没问题。
  • 翻译后的值显示在标签中,因为您在那里使用“Naam”(大写):P。
  • 嗯,好的。我假设使用标签构造以某种方式使关联 FormComponent 的 getLabel() 返回翻译后的值。猜我错了:)

标签: java properties internationalization wicket


【解决方案1】:

像这样为您的组件尝试setlabel

    ...
    f.add(new TextField("naam", Model.of("Rob")).setRequired(true).setLabel(YOUR_COMPONENT_LABEL));
    ...

【讨论】:

    猜你喜欢
    • 2016-08-03
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多