如何在 FormComponent 方法中返回不同的值?

How can I return different values in a FormComponent method?

提问人:Diogo Cruz 提问时间:8/26/2023 更新时间:8/31/2023 访问量:25

问:

我有这个方法,它将创建 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"))
        };
        
    }
java 函数 return-value wicket return-type

评论

0赞 Diego Borba 8/26/2023
请在问题中输入和类。FormComponentComboCustom

答:

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[]