簡體   English   中英

要為類(dao)中的字段創建視圖綁定器。 該字段將json作為文本

[英]Want to create view binder for field in class(dao). the field take json as a text

public class JsonObject {
    private HashMap<String, JsonObject> jsonObjects;
    private List<JsonObject> jsonArray;
    private Integer jsonNumber;
    private String jsonString;
    private Boolean jsonBoolean;
    private Float jsonFloat;
    private String original;

    private VIEW view;

    @SuppressWarnings("unchecked")
    public JsonObject(String json) {
        //... json parser to class field  
    }
    <VIEW> void name(VIEW v) {
        this.view=v;
    }
    // ... getter and setters
}

像UI基礎架構一樣使用Vaadin FW。 我不會這樣聲明:

    public class Exm extends FormLayout {

        public Exm() {
            String json = "{some json ....}";
            JsonObject<TextField> js = new JsonObject(json);

            js.viewBainder(TextField::getValue,TextField::setValue)
            .viewCaption(TextField::setCaption,TextField::getCaption)
            .viewValueChangeEvents(TextField::addValueChangeListener);

            addComponent(js.getView());
        }
    }

沒有泛型類,只有泛型方法,我可以這樣做嗎?

我如何在類中綁定VIEW和抽象方法?

PLS。 舉個簡單的例子。

附言:我是Java的大三學生。 不要想在硬ob。 我! 感謝名單。

您可以在Vaadin中找到與表單進行數據綁定的文檔:

https://vaadin.com/docs/v8/framework/datamodel/datamodel-forms.html

這個概念是,在Vaadin中有Binder類,可以將POA(即具有屬性的getter和setter的Java對象)綁定到Vaadin字段組件(通過實現HasValue來實現)Vaadin 8數據綁定最容易與Java8語法一起使用。

問題的第二部分是如何將JSON反序列化為POJO並返回字符串,並且基於您的問題,我不了解您使用的是什么庫,有很多,並且細節根據您的使用而有所不同。 無論使用什么,都應該使用getName()和setName(..)方法(現在name是JSON中的屬性之一)構造java對象。

如何在Java中將String轉換為JSONObject

通常,我們喜歡調用JSON DTO對象(=數據傳輸對象)的反序列化版本,因為它僅在應用程序內部使用。 因此,如果這稱為例如PersonDTO

TextField nameField = new TextField();

// Shorthand for cases without extra configuration
binder.bind(nameField, PersonDTO::getName, PersonDTO::setName);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM