利用芭蕾舞团输出html
有没有办法使用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支持目前正在重新设计中,以提供更好的原生支持。因此,上述示例实现将来可能会更改。相关文章