Wicket DateTextField自定义错误消息

时间:2016-04-01 21:12:23

标签: wicket wicket-6

我正在使用DateTextField作为编辑日期字段, 如果用户输入无效日期(例如,输入任何与日期相关的字符) 然后在提交表单上DateTextField在内部根据id。

创建无效的日期消息

我的代码是:

form.add(DateTextField.forDatePattern("orderStartDate", new DateModel(new PropertyModel<Date>(this, "defaultModelObject.startDate")), "dd/MM/yyyy"));

现在,如果用户输入任何无效日期,那么在表单提交中,DateTextField会生成消息。

&#34;&#39; orderStartDate&#39;不是有效的日期。&#34;

在留言&#39; orderStartDate&#39;是我在DateTextField上设置的id;

现在我想为上面消息的这个错误创建自定义消息;

2 个答案:

答案 0 :(得分:3)

默认值来自public abstract class RajawaliCardboardRenderer extends RajawaliRenderer implements CardboardView.StereoRenderer { //... public void changeImage() {}; //... } 资源包密钥:https://github.com/apache/wicket/blob/77b4df63f44d00e9350068686e4b091f730f167f/wicket-core/src/main/java/org/apache/wicket/Application.properties#L16

您需要在YourApplication.properties中提供一个更具体的覆盖它,例如:

IConverter

答案 1 :(得分:0)

Validators通常会将其类报告给Error对象。当Wicket生成FeedbackMessage时,它会在StringResourceModel中查找它。因此,如果您使用.properties或.properties.xml文件进行措辞,您可能希望使用IConverter的密钥添加FeedbackMessage(报告错误)

<entry key="IConverter.Date">Please use the format dd/MM/yyyy!</entry>

所需FormComponents的相同故事

<entry key="Required">Please provide a value!</entry>

如果有一天你自己编写验证器,请给它一个密钥和可选参数。

private void error(IValidatable<String> validatable) {
    ValidationError error = new ValidationError();
    error.addKey("id.exists");
    error.setVariable("id", valueThatIsNotValid); // variable held in class
    ekpCmp.error(error);
}

并定义StringResource

    <entry key="id.exists">The value ${id} already exists.</entry>