提问人:Diogo Cruz 提问时间:8/26/2023 更新时间:8/31/2023 访问量:25
如何在 FormComponent 方法中返回不同的值?
How can I return different values in a FormComponent method?
问:
我有这个方法,它将创建 2 个文本字段和一个组合框。 但是我在返回不同的值时遇到了问题,因为它给了我一个错误“类型不匹配:无法从 ComboCustom 转换为 FormComponent<?>”
2 个文本字段效果很好,但我不明白为什么组合框不能以及如何让它工作。 提前致谢。
private static FormComponent<?>[] criaComponentes(FiltroListaEquipamentosASerSubstituido2 filtro) {
ComboCustom<EqpMarca> marca = new ComboCustom<EqpMarca>("marca", new PropertyModel<EqpMarca>(filtro, "marca"), list, new ChoiceRenderer<EqpMarca>() {
private static final long serialVersionUID = 1L;
@Override
public String getDisplayValue(EqpMarca est) {
return est.getDesignacao();
}
@Override
public String getIdValue(EqpMarca est, int arg) {
return String.valueOf(est.getIdMarca());
}
});
marca.add(new AjaxFormComponentUpdatingBehavior(HtmlTag.ONCHANGE) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(marca);
}
});
return new FormComponent<?>[] {
new TextField<String>("nome", new PropertyModel<String>(filtro, "nome")),
marca,
new TextField<String>("modelo", new PropertyModel<String>(filtro, "modelo"))
};
}
答:
0赞
martin-g
8/31/2023
#1
ComboCustom
似乎是 IChoiceRenderer 的实现。它不是真正的 FormComponent
评论
0赞
Diogo Cruz
8/31/2023
那么,如何返回文本字段 + combocustom?
0赞
martin-g
9/1/2023
由于 Java 不支持开箱即用的元组,例如 您可以返回一个或一个自定义的 Tuple/Pair 类,该类包含表单组件和选项渲染器。(formComponent, choiceRenderer)
Object[]
评论
FormComponent
ComboCustom