我有一个textarea,有时会在其中包含默认文本,有时不依赖于数据库中的值。现在,我在textareas构造函数中使用了一个模型,其getObject()返回一个字符串,它可以很好地显示从数据库中获取的文本:
myTextArea = new TextArea<String>("text", textModel);
这是问题所在:我希望能够在用户输入textarea中的任何内容之前调用myTextArea.validate(),现在我总是得到一个必需的错误。显然,checkRequired()在验证textarea时使用getInput(),并且getInput()的默认值为null。
有没有什么方法可以将textarea的输入与它的modelObject匹配,或者使默认输入由textarea中显示的文本确定?
答案 0 :(得分:0)
getInput从与表单组件对应的请求参数中读取其值。我认为您应该在文本区域中覆盖此方法,并使其在原始getInput返回null时返回模型的值。例如:
public String getInput(){
String originalInput = super.getInput();
if(originalInput == null && textModel.getObject() != null)
return textModel.getObject().toString();
return originalInput;
}