我这样写只能显示一层,请问怎写才能显示全部层呢?
package com.wang.servlet.ext;import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;
import com.wang.dao.BigclassDao;
import com.wang.util.Menu;
import com.wang.vo.BigclassVO;
import com.wang.vo.SmallclassVO;import dao.AllBook;
import dao.Book;public class BookServlet extends HttpServlet {
private String menuString;
private List<Menu> menus;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
menus = new ArrayList<Menu>();
AllBook allBook=new AllBook();
List<Book> list1=allBook.fillbook();
PrintWriter out = response.getWriter();
for (int i = 0; i < list1.size(); i++) {
Menu bzmenu = new Menu();
bzmenu.setId(list1.get(i).getId());
bzmenu.setText(list1.get(i).getBookName());
//bzmenu.setLeaf(list1.get(i).getCode());
menus.add(bzmenu);
}
JSONArray jsonObject = JSONArray.fromObject(menus);
try{
menuString = jsonObject.toString();
}catch(Exception e){
e.printStackTrace();
}
out.print(menuString);
}}
package dao; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import dao.Book; public class AllBook { public static final String URL="jdbc:sqlserver://localhost:1433;DatabaseName=books";
public static final String serName="sa";
public static final String Pwd="rt"; protected static Connection conn=null;
protected static PreparedStatement pst=null;
protected static ResultSet rs=null;
public List fillbook(){
//List menuList=new ArrayList();
List<Book> list1=new ArrayList<Book>();
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection(URL,serName,Pwd); //得到连接
Statement st=con.createStatement(); String sql="select * from book"; //查询数据SQL语句s ResultSet rs=st.executeQuery(sql); //获取结果集
while (rs.next()){
Book book=new Book();
book.setId(rs.getString("id"));
book.setCode(rs.getString("Code"));
book.setBookName(rs.getString("BookName"));
book.setBookPrice(rs.getString("BookPrice"));
list1.add(book);
}
con.close(); //关闭连接
}
catch (Exception ex) {
ex.printStackTrace(); //输出出错信息
}
return list1;
} }
前台代码:
<script type="text/javascript">
Ext.onReady(function() {
var Tree = Ext.tree;
var tree = new Tree.TreePanel({
el:'tree-div',
autoScroll:true,
animate:true,
enableDD:true,
containerScroll: true,
loader: new Tree.TreeLoader({
dataUrl:'<%=path%>/TreeServlet'
})
}); // set the root node
var root = new Tree.AsyncTreeNode({
text: 'Ext JS',
draggable:false,
id:'source'
});
tree.setRootNode(root); // render the tree
tree.render();
root.expand();
});
</script>
解决方案 »
- 有什么办法让鼠标离开列表依然显示
- 闲来无事做的一个随机点名
- 多个页面引入同一个javascript会不会重新加载
- 刚看到一个帖子:问求js脚本关闭当前浏览器,不提示询问关闭窗口(IE6.0)。我想问ie7 8 firefox 等关闭浏览器不提示关闭窗口的代码是什么
- FLASH调用JS的一个问题
- web服务 异步调用
- 请教关于取值的问题
- 在JavaScrip中对Flash的变量赋值应该怎么做 ?
- 请问:哪里有javascript的chm的帮助文档下载,或者谁有,请给我email一份,多谢([email protected])???
- 求救!!急!各位进来看看吧!解决后另给分!!!!
- 求:Javascript如何把UL LI形式的转换成树型结构显示
- 请教一个关于jquery ui Dialog插件的问题~~~~~
以下是一个裸的树结构数据,一般情况下,如果你的数据满足以下结构,大多数ExtJS树都能接收到。[{"id":"1","text":"湖南","children":[{"text":"邵阳","leaf":true},{"text":"娄底","leaf":true}],"leaf":false},{"id":"2","text":"广东","children":[{"text":"深圳","leaf":true},{"text":"东莞","leaf":true}],"leaf":false}]以上是一个JAVA JSONArray对象数据结构,你仔细对一下,一般树结构要包括"id","leaf","iconCls","text"这些.至于你的下拉树出不来,你可以查看下,"leaf"属性是否写成了字符窜"true"or"false",如果是,请改成布尔值,比如:"leaf":true.以下是后台代码:
private void viewClientTreeInLevelByAjaxQuest(HttpServletRequest req,
HttpServletResponse res) throws Exception{
JSONObject data = c_service.getClientTreeData();
PrintWriter out = null;
res.setContentType("text/Xml;charset=gbk");
out = res.getWriter();
String str =
"[{'id':'1','text':'湖南','leaf':false,'children':" +
"[{'text':'邵阳','leaf':true},{'text':'娄底','leaf':true}]}," +
"{'id':'2','text':'广东','leaf':false,'children':" +
" [{'text':'深圳','leaf':true},{'text':'东莞','leaf':true}]}]";
JSONArray jsonArr = JSONArray.fromObject(str);
System.out.println(jsonArr.toString());
if(data!=null){
// out.println(data.get("data").toString());
out.println(jsonArr.toString());
}
out.close();
}
以下是我自己电脑上的效果:
封装好数据后,你可以将你的JSONArray.toString()打印出来,和我下面提供的数据结构对比下,问题很快就解决了。
[{"id":"1",
"text":"湖南",
"leaf":false, //应该是布尔值,而不是"leaf":"false"字符窜
"children": //将children的属性封装成JSONArray
[{"text":"邵阳",
"leaf":true},
{"text":"娄底",
"leaf":true}]},
{"id":"2",
"text":"广东",
"leaf":false
"children":
[{"text":"深圳",
"leaf":true},
{"text":"东莞",
"leaf":true}]}]