利用芭蕾舞团输出html

2022-06-25 00:00:00 html wso2 ballerina

有没有办法使用Ballina语言输出包含某些数据的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;

    }
}

解决方案

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

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有效负载以在呈现中使用。

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

相关文章