1

有没有办法通过使用 Ballerina 语言输出一个包含一些数据的 html 页面?

假设我需要将以下代码中的“orderid”字符串显示在 HTML 页面的 H1 标记内。

import ballerina.net.http;
import ballerina.lang.system;

@http:BasePath {value:"/shop"}
service echo {

    @http:GET{}
    @http:Path {value:"/order"}
    resource echoGet (message m, @http:QueryParam {value:"orderid"}string orderid) {
        http:convertToResponse(m);
        system:println("orderid" + orderid);
        reply m;

    }
}
4

1 回答 1

0

Ballerina 是一种集成语言,因此不支持此类功能。但是,作为替代方案,您可以尝试以下方法。

import ballerina.net.http;
import ballerina.lang.messages;
import ballerina.lang.xmls;

@http:BasePath {value:"/shop"}
service echo {

    @http:GET{}
    @http:Path {value:"/order"}
    resource echoGet (message m,@http:QueryParam {value:"orderid"}string orderid) {
        xml xmlPayload = xmls:parse("<html><h1>" + orderid + "</h1></html>");
        messages:setXmlPayload(m, xmlPayload);
        reply m;
    }
}

这构造了一个 HTML 并输出如下回复:

<html>
    <h1>123</h1>
</html>

这仍然不是 HTML,而是构建为 XML 的 HTML。如果您需要在网页中进行渲染,您可以直接提取 XML 有效负载以用于您的渲染。

请注意,目前正在重新设计 Ballerina 中的 XML 支持,以提供更好的原生支持。因此,上述示例实现将来可能会改变。

于 2017-06-20T02:24:34.483 回答