最近由于JAVASCRIPT形式的TreeView控件显示的速度太慢了,就用AJAX+YAHOO UI重新做了一个。第一次用AJAX,弄了一个晚上,终于实现了Lazy load形式的展示的分类树。服务器端的是一个Turbine action形式的Servlet,负责根据传入的节点ID获取其子节点信息列表并以XML形式返回。实现过程中发现这个servlet的写法还是有些讲究的:
1. 应该显式调用response.setContentType("text/xml;charset=UTF-8"),告诉客户端返回的是XML。如果只是在所生成的XML的模板中设置并不够(我用的是velocity模板);
2.客户端和服务器端通信的XML必须以UTF-8编码,而且必须将response的输出流设置成UTF-8编码。如果是GBK编码客户端JAVASCRIPT调用DOM处理XML时就会出问题;
OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream(),"utf-8");
......