繁体   English   中英

如何以正确的形式获取信息(Spring Boot)

[英]How can I get the information in the correct form (Spring Boot)

我创建了一个 spring 引导项目。 我想通过 vaadin 显示信息,如图所示。 我试过了,但它在一行上显示了所有信息。 只用 Vaadin 14. 如何正确书写,让一切完美呈现

在此处输入图像描述

我正在使用 vaadin 14 UI 框架

@Route
@Service
public class MainView extends VerticalLayout {

   RestTemplate restTemplate=new RestTemplate();


    public String URL(String d){
        return "http://localhost:8080/api/whois/" + d;
    }

    public DomainDTO domainDTO(String url){
        return  restTemplate.getForObject(url, DomainDTO.class);
    }

    public MainView(){

        FormLayout formLayout=new FormLayout();
        TextField textField=new TextField();
        textField.setPlaceholder("please input domain");
        textField.setWidth("630px");
        textField.setHeight("50px");
        Text text1=new Text("");
        VerticalLayout v1=new VerticalLayout();
        v1.add(text1);
        Button button=new Button("SHOW");

        button.addClickListener(event -> {

            DomainDTO dto = domainDTO(URL(textField.getValue()));

             String txt = "";

            txt += "Domain Name............: " + dto.getDomainInfo().getDomainName();
            txt +=  "Organization Using Domain Name";
            txt += "Organization name......: " + dto.getDomainInfo().getOrganizationName();
            txt += "Street Address.........:" + dto.getDomainInfo().getStreetAddress();
            txt += "city...................:" + dto.getDomainInfo().getCity();
            txt += "state..................:" + dto.getDomainInfo().getState();
            txt += "postal code............:" + dto.getDomainInfo().getPostalCode();
            txt += "country................:" + dto.getDomainInfo().getCountry();

            txt += "handle.................:" + dto.getContactInfo().getHandle();
            txt += "voice..................:" + dto.getContactInfo().getVoice();
            txt += "fax....................:" + dto.getContactInfo().getFax();
            txt += "email..................:" + dto.getContactInfo().getEmail();


            text1.setText(txt);

                }
        );


        button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
        formLayout.addFormItem(textField,"DOMAIN");
        button.setWidth("30%");
        formLayout.addFormItem(button," ");
        add(formLayout,v1);

    }
}

Text class 不是最好的,因为你不能给它添加换行符,也不能设置样式。

这样的事情怎么样?

public MainView() {
    Div textContainer = new Div();

    textContainer.add(createHeader("Organization Using Domain Name"));
    textContainer.add(createLine("Name", dto.getDomainInfo().getDomainName()));
    textContainer.add(createLine("Organization Name", dto.getDomainInfo().getOrganizationName()));
    textContainer.add(createLine("Street Address", dto.getDomainInfo().getStreetAddress()));

    textContainer.add(createHeader("Administrative Contact/Agent"));
    textContainer.add(createLine("Handle", dto.getDomainInfo().getHandle()));
    textContainer.add(createLine("Name", dto.getDomainInfo().getName()));

    add(textContainer);
}

private Component createLine(String key, String value) {
    int keyLength = 24;
    StringBuilder sb = new StringBuilder(key);

    // Add padding dots ...
    for(int i = key.length(); i < keyLength; i++) {
        sb.append(".");
    }
    sb.append(": ");
    sb.append(value);

    Paragraph line = new Paragraph(sb.toString());
    line.getStyle().set("font-family", "monospace");
    line.getStyle().set("margin", "0");

    return line;
}

private Component createHeader(String caption) {
    Paragraph header = new Paragraph(caption);
    header.getStyle().set("font-family", "monospace");
    header.getStyle().set("margin", "16px 0 0 0 ");
    return header;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM