jfinal 如何把数据放到xml中?

翻到了很久之前的一个解答:

使用 renderXml(String viewName) 方法需要先做一个用于 xml 输出的模板,例如要输出的数据是 List<Book> booksList:
<Books>
  <#list booksList as x>
    <book>
      <id>${x.id}</id>
      <title>${x.title}</title>
    </book>
  </#list 
<Books>
  
   以上是在模板中使用 freemarker 语法将数据迭代输出,假定以上内容保存在 books.xml 文件中,使用 renderXml("books.xml") 即可
   
   
我设置的模板是beetl,但是貌似在xml文件中没有用,怎么设置xml的模板???


评论区

杜福忠

2017-06-17 10:37

public class IndexController extends Controller {

static BlogService service = new BlogService();

public void index() {
// render("index.html");
setAttr("blogPage", service.paginate(getParaToInt(0, 1), 10));
render(new XmlRender("books.xml"));
}
}

语法是Template魔版
books.xml 文件:



#for(x : blogPage.getList())

#(x.id)
#(x.title)

#end

杜福忠

2017-06-17 10:38

< ?xml version="1.0" encoding="UTF-8"? >
< Books >
#for(x : blogPage.getList())
< book >
< id >#(x.id)< /id >
< title >#(x.title)< /title >
< /book >
#end
< /Books >

JFinal

2017-06-17 11:44

jfinal 的 renderXml 在底层使用的是 XmlRender 实现,而 XmlRender 又使用的是 jfinal template engine

当你要使用别的模板引擎来输出 XML 时,只需要类似于下面这样用就可以
render(new XxxRender("books.xml"))

也就是说通过 Controller.render(Render render) 这个方法来无限扩展自己要用的 Render 实现

nbjgl

2017-06-17 16:32

用jfinal的template engine就行了!~~

JFinal

2017-06-17 16:44

@nbjgl 用 jfinal template engine 的语法来做是最方便的,不用做其它的事情

不能忍受

2018-09-28 16:59

@JFinal 如何用模板方法发送http请求 xml格式的

JFinal

2018-09-28 18:10

@不能忍受 两行代码即可:
String xml = renderToString("books.xml");
String ret = HttpKit.post(url, xml);

不能忍受

2018-09-29 08:48

@JFinal 感谢 我就是想要这种格式的

huakang

2019-02-20 18:56

@杜福忠 怎么把record对象里面的值用xml返回

杜福忠

2019-02-20 19:35

@huakang 可以使用 Map 遍历 record.getColumns() 进行个性拼接 #for 指令 https://www.jfinal.com/doc/6-4

热门反馈

扫码入社