renderXml如何传值(已解决)

后台
public class DemoController extends Controller {
    public void xml1() {
        WepayResponseXml wepayResponseXml = new WepayResponseXml();
        wepayResponseXml.setCode("success");
        wepayResponseXml.setMessage("ok");
        this.setAttr("obj", wepayResponseXml);
        this.setAttr("message", "ok");
        this.setAttr("code", "success");
        this.renderXml("/template/wepay_callback_response.xml");
    }
}
前台
<xml>
    <return_code1><![CDATA[${code}]]></return_code1>
    <return_code><![CDATA[${obj.code}]]></return_code>
    <return_msg><![CDATA[${obj.message}]]></return_msg>
</xml>

如上进行xml渲染时,无论我用Object还是字符串setAttr最终xml中都拿不到值,请问应该如何传值?


UPDATE:

Jfinal3.0中,xml的渲染引擎换成JfinalTemplateEngine,使用新的语法就可以读到值:#(obj.message)

评论区

JFinal

2017-03-08 16:43

用的哪个版本? 如果是 jfinal 3.0,注意输出指令为: #(obj.message)

伊森

2017-03-08 16:47

已解决,看了下源码,XmlRender里面并没有继承FreeMarkerRender,而是TemplateRender,已经换成JfinalTemplateEngine来渲染了

伊森

2017-03-08 16:59

@JFinal,就是这个问题,还是自己源码读的少。

JFinal

2017-03-08 17:40

@伊森 看下手册就可以了,XmlRender 使用的是 jfinal template engine,有一章专门讲了 template engine 的使用

热门反馈

扫码入社