renderXml怎么用

我最近需要完成的接口最后是返回一个xml格式的串,我用dom生成了一个xml,最后放进renderXml里面,可是访问后返回的结果是这样的。

源码以及生成xml文件还有浏览器的返回结果请大家看一下

屏幕快照 2018-04-10 上午10.10.11.png屏幕快照 2018-04-10 上午10.16.12.png


屏幕快照 2018-04-10 上午10.11.18.png

评论区

丹丹丹

2018-04-10 10:18

不知道在这提问有问题吗,知道的前辈帮忙回复一下呗。

JFinal

2018-04-10 11:02

将 xml 当成 html 页面去使用,最后这样:
renderXml("xmlFileName.xml")

这个 "xmlFileName.xml" 中的内容就是你要拼接的 XML ,不要使用 dom 生成 XML 太低效太麻烦了

JFinal

2018-04-10 11:04

renderXml 是用 jfinal 的 enjoy 生成内容,所有的 enjoy 功能都可以用上,例如:
《xml》
#for ( x : bookList)
《book》
《name = #(x.name) /》
《/book》
《/xml》

具体参考这里:http://www.jfinal.com/doc/6-1

lyh061619

2018-04-10 11:06

@丹丹丹 这个提示,是浏览器行为,建议你看下这里https://blog.csdn.net/sunwl_csdn/article/details/59546039,然后自己履行下xmlRender:

丹丹丹

2018-04-10 11:31

@JFinal 这个问题解决了,还有个问题,我们的接口是原来的代码抽出来放在jfinal的框架里,别的系统会调用这些接口,现在希望调用地址不改变,http://10.180.27.112/centersrv/normalization/name.do?可是这样的地址后面带.do的我怎么配路由那儿就不行,根本进不去方法。

JFinal

2018-04-10 11:45

@丹丹丹 加一个 handler,去于后缀为 .do 的请求放行一下:
if (target.endsWith(".do") {
return ;
} else {
next.handle(...);
}

最后配置一下: me.add(new MyHandler(...));

参考一下 com.jfinal.ext.handler 包下面的几个已有的 Handler 去写

丹丹丹

2018-04-10 13:35

@JFinal
import com.jfinal.handler.Handler;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyHandler extends Handler {

@Override
public void handle(String target, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, boolean[] booleans) {
if(target.endsWith(".do")){
return;
}else{
this.next.handle(target, httpServletRequest, httpServletResponse, booleans);
}

}
}
我这样写的,不对,请问哪里有问题?

丹丹丹

2018-04-10 14:04

@JFinal 解决了,非常感谢!

热门反馈

扫码入社