Java版通用JS级联

文章作者 100test 发表时间 2007:10:15 12:40:51
来源 100Test.Com百考试题网


  在开发中,经常遇到诸如省、市,大类、小类的级联0select 下拉框。常常,这些类别或地区的内容,又存在数据库中。因为用户希望,一切都是可控制的。那么,如果涉及到这种级联的地方,每次都人从库中读取,在JSP中要写很多代码去读表。另外,这种级联在修改数据的时候,应设置的选中项为库中所载,这也是需要写一些代码的。

  这里本人建议,通过IO,将类别生成js文件,然后在页面中引入这个js文件,这样即提高的程序的运用速度,又精简了的代码书写量。

  一、表结构如下:

create table news_class200
(
id int primary key,
parent_id int,
class_name varchar(20),
orderby int default 0

)

id 为自动增长
parent_id 用来标识父类的id
class_name 类别名称
orderby 排序,用来控制0select中元素的前后顺序

  二、成生js的java代码:

public static void news_class(String str,String tab) throws IOException
{
//大类名称
String big="big_class".
String small="small_class".
String big_array="".
String[] small_array.

Jdata data = new Jdata(). //dao对象
List list = data.jlist("0select * from " tab " where parent_id=0").
FileWriter fw = new FileWriter(str).
PrintWriter out = new PrintWriter(fw).
List ll = new ArrayList().
small_array=new String[list.size()].

for(int i=0. i<list.size(). i )
{
//读取大类信息
Map map=(Map)list.get(i).
big_array ="’" map.get("class_name") "’,".

ll=data.jlist("0select * from " tab " where parent_id=" map.get("id")).
small_array[i]="".
for(int j=0. j<ll.size(). j )
{
Map m =(Map)ll.get(j).
small_array[i] ="’" m.get("class_name") "’,".

}
small_array[i]=noEnd(small_array[i]).

// System.out.println(big_array).

}

big_array=noEnd(big_array).

// out.println("<script language=javascript>").
out.println("document.writeln(\’<0select name=" big " onchange=\\\"" small "MM(this.0selectedIndex)\\\">\’). ").
out.println("document.writeln(’<option value=\\\"\\\">请选择</option>’). ").
out.println("document.writeln(’</0select>’). ").
out.println("document.writeln(’<0select name=" small ">’). ").
out.println("document.writeln(’<option value=\\\"\\\">请选择</option>’). ").
out.println("document.writeln(’</0select>’). ").
out.println("var " big "Name = [" big_array "]. ").
out.println(" var " big "Value=[" big_array "]. ").

for(int m=0. m<small_array.length. m )
out.println(" var " small (m 1) " = [" small_array[m] "]. ").

相关文章


垃圾回收器的使用方法
解析JAVA中的内存分配
Java版通用JS级联
JAVA语言内存泄漏问题
Java程序基础入门必看
JAVA桥梁模式(Bridge)
this与super的使用方法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛