﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-waysun一路阳光-随笔分类-经典实例</title><link>http://www.blogjava.net/1504/category/32237.html</link><description>不轻易服输,不轻言放弃.--心是梦的舞台，心有多大，舞台有多大。踏踏实实做事，认认真真做人。</description><language>zh-cn</language><lastBuildDate>Tue, 12 Oct 2010 07:06:19 GMT</lastBuildDate><pubDate>Tue, 12 Oct 2010 07:06:19 GMT</pubDate><ttl>60</ttl><item><title>FusionCharts在用JSP自定义导出pdf,doc,xsl格式的图表混编文件【原创】</title><link>http://www.blogjava.net/1504/archive/2010/03/03/314430.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Wed, 03 Mar 2010 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2010/03/03/314430.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/314430.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2010/03/03/314430.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/314430.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/314430.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt;"><span style="color: #ff0000;"><span style="font-size: 10pt;">注明：最近很多朋友跟我要源码，其实很简单的东西，自己尝试一下很快就解决了，目前我在外地出差，不能提供源代码下载，我不再传源码，请见谅。<br />
</span></span>在云南期间，收到几个朋友的邮件，希望发工程代码，因为我在云南，没有带本子，说声抱歉！<br />
</span></p>
<p><span style="font-size: 10pt;">因为项目需要，前几天完成了fusioncharts的基本使用，但是还不能满足项目需求。<br />
项目中需要实现按照客户的需求导出指定格式的文件，而且可以图表混编等，这就需要自己去扩展fusioncharts本身的导出。<br />
下面简单介绍如何在服务器端使用JSP导出各种文件格式，并能自由扩展。因为时间比较紧，写的很凌乱，希望大家理解。<br />
</span><img alt="" src="http://www.blogjava.net/images/blogjava_net/1504/fusion.jpg" width="614" border="0" height="398" /><br />
</p>
<p><span style="font-size: 10pt;">在J2EE框架下用JSP导出文件<br />
1.将 exportAtClient导出属性设置为0（服务器导出），exportHandler设置为'exp.jsp'。<br />
可以在chart.exportChart({exportFormat:'pdf',exportHandler:'exp.jsp',exportFileName:'test',exportParameters:'test'});设置，也可以在XML里设置。（注意在JS里设置会重写XML里面的导出属性设置）<br />
2.exp.jsp为处理数据的文件，可实现各种文件格式的导出。</span></p>
<p><br />
<span style="font-size: 10pt;">&lt;%@ page language="java" import="com.hjtp.incas.chart.*" pageEncoding="utf-8"%&gt;<br />
&lt;%@ page import="com.hjtp.incas.chart.helper.*"%&gt;<br />
&lt;%@ page import="com.hjtp.incas.chart.exporthelper.*"%&gt;<br />
&lt;%<br />
String path = request.getContextPath();<br />
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br />
%&gt;</span></p>
<p><span style="font-size: 10pt;">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;导出图片&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv="pragma" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="cache-control" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<br />
&nbsp;&lt;meta http-equiv="description" content="This is my page"&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; &lt;body&gt;<br />
&lt;%<br />
&nbsp;try<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExportHelperBean exportHelperBean=FusionChartsExportHelper.parseExportRequestStream(request);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExportFactory exportFactory=ExportFactory.getInstance();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String type=(String)exportHelperBean.getExportParameterValue("exportformat");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String fileName = (String)exportHelperBean.getExportParameterValue("exportfilename");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExportFormat exportFormat=new ExportFormat(type);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String contentType=exportFormat.getContentType();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String fix=exportFormat.getPostfix();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.reset();&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setContentType(contentType);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.addHeader("Content-Disposition","attachment; filename=\""+fileName+"."+fix+"\"");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.io.OutputStream os=response.getOutputStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFusionCharts iFusionCharts=exportFactory.getFusionCharts(type);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iFusionCharts.export(exportHelperBean,os);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.flush();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.close();&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.clear();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out=pageContext.pushBody();&nbsp;&nbsp;&nbsp; <br />
&nbsp;}<br />
&nbsp;catch (Exception e) <br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;}<br />
&nbsp;%&gt;<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
3.如何扩展导出的文件格式为项目所需。<br />
1.自定义导出<br />
将服务器端导出参数设为exportHandler:'exp.jsp'，即为使用我们自己<br />
写的导出方式导出。<br />
2.如何扩展自定义导出<br />
(1)在exp.jsp中，可以看到如下两行代码<br />
IFusionCharts iFusionCharts=exportFactory.getFusionCharts(type);<br />
iFusionCharts.export(exportHelperBean,os);<br />
其中exportFactory为一个工厂类,起分发器的作用，通过此类可以根据<br />
扩展实际需求进行自定义扩展。<br />
(2)自定义扩展实现 ，例如像实现对txt文件格式支持的导出，需要在新增加<br />
一个类实现IFusionCharts 接口的export方法即可，同时在exportFactory<br />
工厂类里添加对此支持的判断分发实现即可。<br />
</span></p>
<p><br />
<br />
<a onclick="alert('不再提供工程下载,希望不要再向我索要工程文件，谢谢！！')" href="#">MyEcliplse下工程下载</a></p>
<img src ="http://www.blogjava.net/1504/aggbug/314430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2010-03-03 17:30 <a href="http://www.blogjava.net/1504/archive/2010/03/03/314430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>异步加载树1【总结】</title><link>http://www.blogjava.net/1504/archive/2008/10/30/237613.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Thu, 30 Oct 2008 07:11:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/10/30/237613.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/237613.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/10/30/237613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/237613.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/237613.html</trackback:ping><description><![CDATA[1.效果图如下<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/1504/menu.jpg" border="0" /><br />
2.manageMenu.jsp菜单显示页面<br />
<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt;<br />
&lt;%<br />
String path = request.getContextPath();<br />
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br />
%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'ManageMenu.jsp' starting page&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv="pragma" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="cache-control" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<br />
&nbsp;&lt;meta http-equiv="description" content="This is my page"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;link rel="STYLESHEET" type="text/css" href="css/dhtmlXTree.css"&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;script src="js/dhtmlXCommon.js"&gt;&lt;/script&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;script src="js/dhtmlXTree.js"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript" src="&lt;%=request.getContextPath()%&gt;/dwr/engine.js"&gt;&lt;/script&gt;<br />
&nbsp;&lt;script type="text/javascript" src="&lt;%=request.getContextPath()%&gt;/dwr/util.js"&gt;&lt;/script&gt;<br />
&nbsp;&lt;script type='text/javascript' src='&lt;%=request.getContextPath()%&gt;/dwr/interface/service.js'&gt; &lt;/script&gt;<br />
&lt;style type="text/css"&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; .input<br />
&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width:300px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height:20px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border:solid 0px;<br />
&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp; .input1<br />
&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width:70px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height:20px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border:solid 0px;<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; .input2<br />
&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width:300px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height:20px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border:solid 1px;<br />
&nbsp;&nbsp; }<br />
&lt;/style&gt;<br />
&lt;script type="text/javascript"&gt;<br />
var oPopup = window.createPopup();<br />
var array_info;<br />
function showmenu(height)<br />
{<br />
&nbsp;&nbsp;&nbsp; var lefter2 = event.clientY+12;<br />
&nbsp;&nbsp;&nbsp; var topper2 = event.clientX+10;<br />
&nbsp;&nbsp;&nbsp; var height2=file_menu.clientHeight;<br />
&nbsp;&nbsp;&nbsp; oPopup.document.body.innerHTML = oContextHTML.innerHTML+"&lt;input type='hidden' id='file_id' value='"+event.srcElement.id+"' name='file_id'&gt;"; <br />
&nbsp;&nbsp;&nbsp; oPopup.show(topper2, lefter2, 150,height,this_win);<br />
}</p>
<p>function viewRight()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; var id=tree.getSelectedItemId();//被选中的节点<br />
&nbsp;&nbsp;&nbsp; //tree.insertNewNext(id,'1',"FFTT",viewRight,"tombs_mag.gif","magazines_open.gif","magazines_close.gif","回家","SELECT");<br />
&nbsp;&nbsp;&nbsp; if(id!="0_0_-1")//当不是根菜单时<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert(":::"+array_info[0]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; chs&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; Array();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chs&nbsp;&nbsp; =&nbsp;&nbsp; id.split("_");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var id=chs[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var ids=chs[1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var v=array_info[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var height=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var adds=document.getElementById("add");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var edits=document.getElementById("edit");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var deletes=document.getElementById("delete");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var st_add="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var st_edit="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var st_delete="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var dis_add="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var dis_edit="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var dis_delete="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ids==-1)//一级目录<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height=75;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st_add="&lt;SPAN ONCLICK=\"parent.add('"+chs[2]+"')\"&gt;新增节点（&lt;u&gt;A&lt;/u&gt;dd）&lt;/SPAN&gt; ";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st_edit="&lt;SPAN ONCLICK=\"parent.edit('"+v[0]+"','"+v[1]+"','"+v[2]+"','"+v[3]+"','"+v[4]+"','"+v[5]+"')\"&gt;修改节点（&lt;u&gt;E&lt;/u&gt;dit）&lt;/SPAN&gt;&nbsp; ";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st_delete=" &lt;SPAN ONCLICK=\"parent.deletes('"+id+"')\"&gt;删除节点（&lt;u&gt;D&lt;/u&gt;elete）&lt;/SPAN&gt; ";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dis_add="";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dis_edit="";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dis_delete="";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height=50;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st_add="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st_edit="&lt;SPAN ONCLICK=\"parent.edit('"+v[0]+"','"+v[1]+"','"+v[2]+"','"+v[3]+"','"+v[4]+"','"+v[5]+"')\"&gt;修改节点（&lt;u&gt;E&lt;/u&gt;dit）&lt;/SPAN&gt;&nbsp; ";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st_delete=" &lt;SPAN ONCLICK=\"parent.deletes('"+id+"')\"&gt;删除节点（&lt;u&gt;D&lt;/u&gt;elete）&lt;/SPAN&gt; ";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dis_add="none";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dis_edit="";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dis_delete="";//将设为显示</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; adds.innerHTML=st_add;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; edits.innerHTML=st_edit;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deletes.innerHTML=st_delete;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adds.style.display=dis_add;//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; edits.style.display=dis_edit;//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deletes.style.display=dis_delete;//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showmenu(height);</p>
<p>&nbsp;}<br />
&nbsp;else//根目录<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp; var adds=document.getElementById("add");<br />
&nbsp;&nbsp;&nbsp;&nbsp; var edits=document.getElementById("edit");<br />
&nbsp;&nbsp;var deletes=document.getElementById("delete");<br />
&nbsp;&nbsp;&nbsp;&nbsp; adds.innerHTML="&lt;SPAN ONCLICK=\"parent.add('root')\"&gt;新增节点（&lt;u&gt;A&lt;/u&gt;dd）&lt;/SPAN&gt; ";<br />
&nbsp;&nbsp;&nbsp;&nbsp; edits.innerHTML="";<br />
&nbsp;&nbsp;&nbsp;&nbsp; deletes.innerHTML="";<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; adds.style.display="";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp; edits.style.display="none";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp; deletes.style.display="none";//将设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp; var height=25;<br />
&nbsp;&nbsp;&nbsp;&nbsp; showmenu(height);<br />
&nbsp;}<br />
&nbsp;<br />
}<br />
function tonclick()<br />
{<br />
&nbsp;&nbsp;&nbsp; var id=tree.getSelectedItemId();//被选中的节点<br />
&nbsp;&nbsp;&nbsp; if(id!="0_0_-1")//当不是根菜单时<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; chs&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; Array();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chs&nbsp;&nbsp; =&nbsp;&nbsp; id.split("_");<br />
&nbsp;&nbsp;&nbsp;&nbsp; service.getMenuInfo(chs[0],menuclick); <br />
&nbsp;&nbsp;&nbsp;&nbsp; var table=document.getElementById("table");//显示节点信息的表<br />
&nbsp;&nbsp;&nbsp;&nbsp; var tdshow=document.getElementById("tdshow");//显示节点信息的表<br />
&nbsp;&nbsp;&nbsp;&nbsp; var add_show=document.getElementById("add_show");<br />
&nbsp;&nbsp;&nbsp;&nbsp; tdshow.style.display="";//将表格设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp; add_show.style.display="none";//将表格设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp; table.style.display="";//将表格设为显示<br />
&nbsp;&nbsp;&nbsp;&nbsp; //alert(table_style);<br />
&nbsp;&nbsp;&nbsp;&nbsp; //tree.insertNewNext(id,'1',"FFTT",viewRight,"tombs_mag.gif","magazines_open.gif","magazines_close.gif","回家","SELECT");<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
function hander()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp; var id=tree.getSelectedItemId();//被选中的节点<br />
&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp; alert(id);<br />
&nbsp;&nbsp;&nbsp;&nbsp; tonclick();<br />
&nbsp;&nbsp;&nbsp;&nbsp; viewRight();<br />
}<br />
function menuclick(data)<br />
{<br />
&nbsp;&nbsp;&nbsp; array_info=data;<br />
&nbsp;&nbsp;&nbsp; var array=data[0];<br />
&nbsp;&nbsp;&nbsp; var cms_name=document.getElementById("name");//显示节点的名称<br />
&nbsp;&nbsp;&nbsp; var cms_link=document.getElementById("link");//显示节点的链接<br />
&nbsp;&nbsp;&nbsp; var cms_orders=document.getElementById("orders");//显示节点的排序号<br />
&nbsp;&nbsp;&nbsp; var cms_is_show=document.getElementById("is_show");//节点是否显示<br />
&nbsp;&nbsp;&nbsp; var cms_is_quick=document.getElementById("is_quick");//节点是否作为快速通道<br />
&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; var legend=document.getElementById("legend");//<br />
&nbsp;&nbsp;&nbsp; legend.innerHTML=array[0];<br />
&nbsp;&nbsp;&nbsp; cms_name.value=array[0];<br />
&nbsp;&nbsp;&nbsp; cms_link.value=array[1];<br />
&nbsp;&nbsp;&nbsp; cms_orders.value=array[2];<br />
&nbsp;&nbsp;&nbsp; if(array[3]==0)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cms_is_show.value="显示";<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cms_is_show.value="不显示";<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; if(array[4]==0)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cms_is_quick.value="是";<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cms_is_quick.value="否";<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>}<br />
&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
function add(id)<br />
{<br />
&nbsp;&nbsp;&nbsp; //菜单响应添加时调用<br />
&nbsp;&nbsp;&nbsp; var add_show=document.getElementById("add_show");<br />
&nbsp;&nbsp;&nbsp; var tdshow=document.getElementById("tdshow");<br />
&nbsp;&nbsp;&nbsp; var click=document.getElementById("click");<br />
&nbsp;&nbsp;&nbsp; var add_legend=document.getElementById("add_legend");<br />
&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var add_cms_name=document.getElementById("add_name");//显示节点的名称<br />
&nbsp;&nbsp;&nbsp; var add_cms_link=document.getElementById("add_link");//显示节点的链接<br />
&nbsp;&nbsp;&nbsp; var add_cms_orders=document.getElementById("add_orders");//显示节点的排序号<br />
&nbsp;&nbsp;&nbsp; var add_cms_is_show=document.getElementById("add_is_show");//节点是否显示<br />
&nbsp;&nbsp;&nbsp; var add_cms_is_quick=document.getElementById("add_is_quick");//节点是否作为快速通道<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; add_show.style.display="";<br />
&nbsp;&nbsp;&nbsp; tdshow.style.display="none";<br />
&nbsp;&nbsp;&nbsp; //bt.style.display="";<br />
&nbsp;&nbsp;&nbsp; //bt.value="添加节点";<br />
&nbsp;&nbsp;&nbsp; add_legend.innerHTML="添加节点";<br />
&nbsp;&nbsp;&nbsp; click.innerHTML="&lt;input type=\"button\" name=\"bt\" value=\"添加节点\"&nbsp; onclick=\"adds('"+id+"')\" id=\"bt\"&gt;";<br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; add_cms_name.value="";<br />
&nbsp;&nbsp;&nbsp; add_cms_link.value="";<br />
&nbsp;&nbsp;&nbsp; add_cms_orders.value="";<br />
&nbsp;&nbsp;&nbsp; add_cms_is_show.value="0";<br />
&nbsp;&nbsp;&nbsp; add_cms_is_quick.value="1";</p>
<p>}<br />
&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
function edit(name,link,orders,is_show,is_quick,id)<br />
{<br />
&nbsp;&nbsp;&nbsp; //菜单响应修改时调用<br />
&nbsp;&nbsp;&nbsp; var add_show=document.getElementById("add_show");<br />
&nbsp;&nbsp;&nbsp; var tdshow=document.getElementById("tdshow");<br />
&nbsp;&nbsp;&nbsp; var click=document.getElementById("click");<br />
&nbsp;&nbsp;&nbsp; var add_legend=document.getElementById("add_legend");<br />
&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var add_cms_name=document.getElementById("add_name");//显示节点的名称<br />
&nbsp;&nbsp;&nbsp; var add_cms_link=document.getElementById("add_link");//显示节点的链接<br />
&nbsp;&nbsp;&nbsp; var add_cms_orders=document.getElementById("add_orders");//显示节点的排序号<br />
&nbsp;&nbsp;&nbsp; var add_cms_is_show=document.getElementById("add_is_show");//节点是否显示<br />
&nbsp;&nbsp;&nbsp; var add_cms_is_quick=document.getElementById("add_is_quick");//节点是否作为快速通道</p>
<p>&nbsp;&nbsp;&nbsp; add_show.style.display="";<br />
&nbsp;&nbsp;&nbsp; tdshow.style.display="none";<br />
&nbsp;&nbsp;&nbsp; //bt.style.display="";<br />
&nbsp;&nbsp;&nbsp; //bt.value="修改节点";<br />
&nbsp;&nbsp;&nbsp; add_legend.innerHTML="修改"+name;<br />
&nbsp;&nbsp;&nbsp; click.innerHTML="&lt;input type=\"button\" name=\"bt\" value=\"修改节点\"&nbsp; onclick=\"edits('"+id+"')\" id=\"bt\"&gt;";<br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; add_cms_name.value=name;<br />
&nbsp;&nbsp;&nbsp; add_cms_link.value=link;<br />
&nbsp;&nbsp;&nbsp; add_cms_orders.value=orders;<br />
&nbsp;&nbsp;&nbsp; add_cms_is_show.value=is_show;<br />
&nbsp;&nbsp;&nbsp; add_cms_is_quick.value=is_quick;<br />
}<br />
&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
var stname;<br />
function adds(id)<br />
{<br />
&nbsp;&nbsp; //alert("添加按钮--"+id);<br />
&nbsp;&nbsp; //数据库添加时调用<br />
&nbsp;&nbsp; var form =document.form1;<br />
&nbsp;&nbsp; var name=form.add_name.value;<br />
&nbsp;&nbsp; var link=form.add_link.value;<br />
&nbsp;&nbsp; var orders=form.add_orders.value;<br />
&nbsp;&nbsp; var is_show=form.add_is_show.value;<br />
&nbsp;&nbsp; var is_quick=form.add_is_quick.value;<br />
&nbsp;&nbsp; if(name==""||name==null)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("节点名称不能为空!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; if(link==""||link==null)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link="#";<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; if(orders==""||orders==null)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orders="1";<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; if(is_show==""||is_show==null)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is_show="0";<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; if(is_quick==""||is_quick==null)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is_quick="1";<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; stname=name;<br />
&nbsp;&nbsp; //alert(id);<br />
&nbsp;&nbsp; service.Add(id,name,link,orders,is_show,is_quick,clickAdd); <br />
}<br />
function clickAdd(info)<br />
{<br />
&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; returninfo=new&nbsp;&nbsp; Array();<br />
&nbsp;returninfo&nbsp;&nbsp; =&nbsp;&nbsp; info.split(";");<br />
&nbsp;if(returninfo[0]=="true")<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("新增【"+stname+"】节点成功!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var id=tree.getSelectedItemId();//被选中的节点<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var insertid=returninfo[1]+"_"+returninfo[2]+"_"+returninfo[3];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert("::::"+insertid);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree.insertNewChild(id,insertid,stname,hander,"book_titel.gif","books_open.gif","book.gif","","")&nbsp;&nbsp; ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //var form2=document.form2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //form2.action="cms/manageMenu.jsp";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //form2.submit(); <br />
&nbsp;}<br />
&nbsp;else<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp; alert("新增【"+stname+"】节点失败!");<br />
&nbsp;}</p>
<p>}<br />
&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
function deletes(id)<br />
{<br />
&nbsp;&nbsp; //菜单,数据库删除时调用<br />
&nbsp;&nbsp; var bln = window.confirm("您确定要删除此界面吗?");<br />
&nbsp;&nbsp; if(bln==true)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; service.deleteAll(id,clickDelete);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree.deleteItem(tree.getSelectedItemId(),true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; else<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp; }<br />
}<br />
function clickDelete(info)<br />
{<br />
&nbsp;&nbsp;&nbsp; alert(info); <br />
}<br />
&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
function edits(id)<br />
{<br />
&nbsp;&nbsp; //数据库修改时调用<br />
&nbsp;&nbsp; var form =document.form1;<br />
&nbsp;&nbsp; var name=form.add_name.value;<br />
&nbsp;&nbsp; var link=form.add_link.value;<br />
&nbsp;&nbsp; var orders=form.add_orders.value;<br />
&nbsp;&nbsp; var is_show=form.add_is_show.value;<br />
&nbsp;&nbsp; var is_quick=form.add_is_quick.value;<br />
&nbsp;&nbsp; service.modify(id,name,link,orders,is_show,is_quick,clickModify); </p>
<p>}<br />
function clickModify(info)<br />
{<br />
&nbsp;&nbsp;&nbsp; alert(info); <br />
}<br />
&lt;/script&gt;</p>
<p>&lt;/head&gt;<br />
&nbsp; <br />
&lt;body id="this_win"&gt;</p>
<p>&nbsp; &nbsp;&lt;table&gt;<br />
&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&lt;td valign="top"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;form name="form2" method="post" action=""&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id="treeboxbox_tree" style="width:250; height:600;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree.setImagePath("images/imgs/");&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree.setXMLAutoLoading("cms/cmsmenu.jsp?op=open");&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree.loadXML("cms/cmsmenu.jsp?op=init");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //tree.enableItemEditor(true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree.setOnClickHandler(tonclick);//单击事件调用方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree.setOnRightClickHandler(viewRight);//设置右键调用方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // tree.insertNewChild('root',5,"新节点",viewRight,"0","0","0","0","SELECT")&nbsp;&nbsp; ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //tree.insertNewItem('0',100,"New Node 1",0,0,0,0,"SELECT");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;td rowspan="2" style="padding-left:25" valign="top" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form name="form1" method="post" action=""&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;fieldset style="DISPLAY:none " id="tdshow"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;legend id="legend"&gt;&lt;/legend&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table width="554" border="0" id="table" style="DISPLAY: none"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="102" height="24" scope="col"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left"&gt;&lt;font size="2"&gt;名字：&lt;/font&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="168" scope="col"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="name" type="text" value="name" id="name" readonly class='input' &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="98" scope="col"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left"&gt;&lt;font size="2"&gt;链接:&lt;/font&gt;&nbsp;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="168" scope="col"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="link" type="text" value="link" id="link" readonly class='input'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;&lt;font size="2"&gt;序号：&nbsp;&nbsp;&nbsp; &lt;/font&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="orders" type="text" value="orders" id="orders" readonly class='input'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="left"&gt;&lt;font size="2"&gt;是否显示：&lt;/font&gt;&nbsp;&nbsp;&nbsp; &lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="is_show" type="text" value="is_show" id="is_show" readonly class='input'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;&lt;font size="2"&gt;是否快速通道：&lt;/font&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="is_quick" type="text" value="is_quick" id="is_quick" readonly class='input'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;/fieldset&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;fieldset style="DISPLAY:none " id="add_show"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;legend id="add_legend"&gt;&lt;/legend&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table width="554" border="0" id="add_table"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="102" height="24" scope="col"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left"&gt;&lt;font size="2"&gt;名字：&lt;/font&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="168" scope="col"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="add_name" type="text" value="name" id="add_name"&nbsp; class='input2' &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="98" scope="col"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left"&gt;&lt;font size="2"&gt;链接:&lt;/font&gt;&nbsp;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="168" scope="col"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="add_link" type="text" value="link" id="add_link"&nbsp; class='input2'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;&lt;font size="2"&gt;序号：&nbsp;&nbsp;&nbsp; &lt;/font&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="add_orders" type="text" value="orders" id="add_orders"&nbsp; class='input2'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="left"&gt;&lt;font size="2"&gt;是否显示：&lt;/font&gt;&nbsp;&nbsp;&nbsp; &lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="left" &gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select name="add_is_show" id="add_is_show"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="0" selected&gt;显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="1"&gt;不显示</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/select&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;&lt;font size="2"&gt;是否快速通道：&lt;/font&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select name="add_is_quick" id="add_is_quick"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="0" selected&gt;是<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="1"&gt;否</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/select&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="21"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td id="click"&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;/fieldset&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&lt;/tr&gt;<br />
&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&lt;/tr&gt;<br />
&lt;/table&gt;</p>
<p><br />
&nbsp;&nbsp; &lt;DIV ID="oContextHTML" STYLE="display:none;"&gt; <br />
&nbsp;&nbsp;&lt;div id="file_menu"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DIV onmouseover="this.style.filter='progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#99ccff, EndColorStr=#FFFFFF)';" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onmouseout="this.style.filter='';" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STYLE="font-family:verdana; font-size:70%; height:25px; background:#e4e4e4; border:1px solid black; padding:3px; padding-left:20px;&nbsp; cursor:hand;DISPLAY: none" id="add"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/DIV&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DIV onmouseover="this.style.filter='progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=yellowgreen,EndColorStr=#FFFFFF)';" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onmouseout="this.style.filter='';"&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STYLE="font-family:verdana; font-size:70%; height:25px; background:#e4e4e4; border:1px solid black; padding:3px; padding-left:20px; cursor:hand; border-top:0px solid black;DISPLAY: none" id="edit"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/DIV&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DIV onmouseover="this.style.filter='progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=gold, EndColorStr=#FFFFFF)';" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onmouseout="this.style.filter='';"&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STYLE="font-family:verdana; font-size:70%; height:25px; background:#e4e4e4; border:1px solid black; padding:3px; padding-left:20px;&nbsp; cursor:hand;DISPLAY: none" id="delete"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/DIV&gt;<br />
&nbsp;&nbsp;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/DIV&gt;</p>
<p><br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
 <img src ="http://www.blogjava.net/1504/aggbug/237613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-10-30 15:11 <a href="http://www.blogjava.net/1504/archive/2008/10/30/237613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用java调用oracle存储过程总结 [转载]</title><link>http://www.blogjava.net/1504/archive/2008/08/14/221920.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Thu, 14 Aug 2008 03:20:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/08/14/221920.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/221920.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/08/14/221920.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/221920.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/221920.html</trackback:ping><description><![CDATA[<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">一：无返回值的存储过程</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">存储过程为：</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)&nbsp;AS</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">BEGIN </span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp; INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">END TESTA;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">然后呢，在</span><span style="font-family: ˎ̥">java</span><span style="font-family: 宋体">里调用时就用下面的代码：</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">package com.hyq.src;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import java.sql.*;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import java.sql.ResultSet;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">public class TestProcedureOne {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;public TestProcedureOne() {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;public static void main(String[] args ){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; String driver = "oracle.jdbc.driver.OracleDriver";</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521: hyq ";</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; Statement stmt = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; ResultSet rs = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; Connection conn = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; CallableStatement cstmt = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; try {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName(driver);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn =&nbsp;DriverManager.getConnection(strUrl, " hyq ", " hyq ");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CallableStatement proc = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc = conn.prepareCall("{ call HYQ.TESTA(?,?) }");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.setString(1, "100");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.setString(2, "TestOne");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.execute();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; catch (SQLException ex2) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex2.printStackTrace();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; catch (Exception ex2) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex2.printStackTrace();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; finally{</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(rs != null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(stmt!=null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stmt.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(conn!=null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (SQLException ex1) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">当然了，这就先要求要建张表</span><span style="font-family: ˎ̥">TESTTB,</span><span style="font-family: 宋体">里面两个字段（</span><span style="font-family: ˎ̥">I_ID</span><span style="font-family: 宋体">，</span><span style="font-family: ˎ̥">I_NAME</span><span style="font-family: 宋体">）。</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">二：有返回值的存储过程（非列表）</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">存储过程为：</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2)&nbsp;AS</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">BEGIN </span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp; SELECT INTO PARA2 FROM TESTTB WHERE I_ID= PARA1; </span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">END TESTB;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">在</span><span style="font-family: ˎ̥">java</span><span style="font-family: 宋体">里调用时就用下面的代码：</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">package com.hyq.src;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">public class TestProcedureTWO {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;public TestProcedureTWO() {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;public static void main(String[] args ){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; String driver = "oracle.jdbc.driver.OracleDriver";</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; Statement stmt = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; ResultSet rs = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; Connection conn = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; try {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName(driver);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn =&nbsp;DriverManager.getConnection(strUrl, " hyq ", " hyq ");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CallableStatement proc = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc = conn.prepareCall("{ call HYQ.TESTB(?,?) }");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.setString(1, "100");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.registerOutParameter(2, Types.VARCHAR);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.execute();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String testPrint = proc.getString(2);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("=testPrint=is="+testPrint);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; catch (SQLException ex2) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex2.printStackTrace();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; catch (Exception ex2) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex2.printStackTrace();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; finally{</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(rs != null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(stmt!=null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stmt.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(conn!=null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (SQLException ex1) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">注意，这里的</span><span style="font-family: ˎ̥">proc.getString(2)</span><span style="font-family: 宋体">中的数值</span><span style="font-family: ˎ̥">2</span><span style="font-family: 宋体">并非任意的，而是和存储过程中的</span><span style="font-family: ˎ̥">out</span><span style="font-family: 宋体">列对应的，如果</span><span style="font-family: ˎ̥">out</span><span style="font-family: 宋体">是在第一个位置，那就是</span><span style="font-family: ˎ̥">proc.getString(1)</span><span style="font-family: 宋体">，如果是第三个位置，就是</span><span style="font-family: ˎ̥">proc.getString(3)</span><span style="font-family: 宋体">，当然也可以同时有多个返回值，那就是再多加几个</span><span style="font-family: ˎ̥">out</span><span style="font-family: 宋体">参数了。</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">三：返回列表</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">由于</span><span style="font-family: ˎ̥">oracle</span><span style="font-family: 宋体">存储过程没有返回值，它的所有返回值都是通过</span>out<span style="font-family: 宋体">参数来替代的，列表同样也不例外，但由于是集合，所以不能用一般的参数，必须要用</span>pagkage<span style="font-family: 宋体">了</span>.<span style="font-family: 宋体">所以要分两部分，</span></p>
<p style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt; tab-stops: list 18.0pt">1，&nbsp;<span style="font-family: 宋体">建一个程序包。如下：</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">CREATE OR REPLACE PACKAGE TESTPACKAGE &nbsp;AS</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;TYPE Test_CURSOR IS REF CURSOR;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">end TESTPACKAGE;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">2</span><span style="font-family: 宋体">，建立</span><span style="font-family: 宋体">存储过程，存储过程为：</span></p>
<p style="margin: 0cm 0cm 0pt">CREATE OR REPLACE PROCEDURE TESTC<span style="font-family: ˎ̥">(p_CURSOR out TESTPACKAGE.Test_CURSOR) IS </span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">BEGIN</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; OPEN p_CURSOR FOR SELECT * FROM HYQ.TESTTB;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">END TESTC;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">可以看到，它是把游标（可以理解为一个指针），作为一个</span><span style="font-family: ˎ̥">out </span><span style="font-family: 宋体">参数来返回值的。</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">在</span><span style="font-family: ˎ̥">java</span><span style="font-family: 宋体">里调用时就用下面的代码：</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">package com.hyq.src;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import java.sql.*;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import java.io.OutputStream;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import java.io.Writer;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import java.sql.PreparedStatement;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import java.sql.ResultSet;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">import oracle.jdbc.driver.*;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">public class TestProcedureTHREE {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;public TestProcedureTHREE() {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;public static void main(String[] args ){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; String driver = "oracle.jdbc.driver.OracleDriver";</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; Statement stmt = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; ResultSet rs = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; Connection conn = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; try {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName(driver);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn =&nbsp;DriverManager.getConnection(strUrl, "hyq", "hyq");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CallableStatement proc = null;</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc = conn.prepareCall("{ call hyq.testc(?) }");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc.execute();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = (ResultSet)proc.getObject(1);</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(rs.next())</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("&lt;tr&gt;&lt;td&gt;" + rs.getString(1) + "&lt;/td&gt;&lt;td&gt;"+rs.getString(2)+"&lt;/td&gt;&lt;/tr&gt;");</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; catch (SQLException ex2) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex2.printStackTrace();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; catch (Exception ex2) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex2.printStackTrace();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; finally{</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(rs != null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(stmt!=null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stmt.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(conn!=null){</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (SQLException ex1) {</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">&nbsp;}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: ˎ̥">}</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">在这里要注意，在执行前一定要先把</span><span style="font-family: ˎ̥">oracle</span><span style="font-family: 宋体">的驱动包放到</span><span style="font-family: ˎ̥">class</span><span style="font-family: 宋体">路径里，否则会报错的。</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">如果有什么问题呢，</span><span style="font-family: ˎ̥"><a href="mailto:可以和我联系hnlyhyq@163.com;qq:77542728"><span style="font-family: 宋体">可以和我联系</span>hnlyhyq@163.com;qq:77542728</a>.</span></p>
<p style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体">我的心愿，愿中国的程序员早日达到世界水平，领先世界科技。<br />
<br />
<br />
<br />
<br />
补充一个使用oracle存储过程分页的小例子： <br />
1， 建一个程序包。如下： <br />
<br />
CREATE OR REPLACE PACKAGE TESTPACKAGE AS <br />
<br />
TYPE Test_CURSOR IS REF CURSOR; <br />
<br />
end TESTPACKAGE; <br />
<br />
2，建立存储过程，存储过程为： <br />
<br />
<br />
create or replace procedure TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR,lowerNum in numeric,higherNum in numeric) is <br />
begin <br />
OPEN p_CURSOR FOR select * from ( select row_.*, rownum rownum_ from (select id,title,status from HYQTEST) row_ where rownum &lt;= higherNum) where rownum_ &gt;lowerNum; <br />
end TESTC; <br />
<br />
使用plsql测试： <br />
declare <br />
lowerNum integer; <br />
higherNum integer; <br />
id varchar2(10); <br />
title varchar2(500); <br />
status numeric; <br />
c testpackage.Test_CURSOR; <br />
rownum_ integer; <br />
begin <br />
lowerNum:=1; <br />
higherNum:=10; <br />
TESTC(c,lowerNum,higherNum); <br />
LOOP <br />
FETCH c INTO id,title,status,rownum_; <br />
EXIT WHEN c%NOTFOUND; <br />
DBMS_OUTPUT.PUT_LINE('=行号='||rownum_||'=='||id||'==='||title||'===='||status||'=='); <br />
END LOOP; <br />
CLOSE c; <br />
<br />
end; <br />
</span></p>
<img src ="http://www.blogjava.net/1504/aggbug/221920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-08-14 11:20 <a href="http://www.blogjava.net/1504/archive/2008/08/14/221920.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个简单的DWR例子[收藏]</title><link>http://www.blogjava.net/1504/archive/2008/08/03/219696.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Sun, 03 Aug 2008 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/08/03/219696.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/219696.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/08/03/219696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/219696.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/219696.html</trackback:ping><description><![CDATA[<p>什么是DWR？</p>
<p>&nbsp;&nbsp; DWR是一个Open Source的 java项目。DWR可以让JavaScript调用运行在Web服务器里面的JAVA程序。简单一点或者专业一点就是Easy AJAX for JAVA.</p>
<p>下面将一步一步的介绍怎么完成一个简单DEMO</p>
<p>1，从官方网站下载DWR <a href="https://dwr.dev.java.net/files/documents/2427/32252/dwr.war">https://dwr.dev.java.net/files/documents/2427/32252/dwr.war</a>&nbsp;把他直接放到TOMCAT_HOME/webapps 下面</p>
<p>2，编写一个Java类如下：</p>
<blockquote dir="ltr" style="margin-right: 0px">
<p>&nbsp;&nbsp; DWRTest.java</p>
<p>&nbsp;package com.test.ajax;</p>
<p>/**<br />
&nbsp;* <br />
&nbsp;* @author 方见华<br />
&nbsp;*<br />
&nbsp;*/<br />
public class DWRTest {<br />
&nbsp;public DWRTest(){<br />
&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;public String getMyName(){<br />
&nbsp;&nbsp;return "James Fang";<br />
&nbsp;}<br />
}<br />
&nbsp;</p>
</blockquote>
<p dir="ltr">3, 把DRWTest类配置在dwr.xml中，dwr.xml是DWR的配置文件，所有需要在JavaScript中调用的java的类都必须在这个文件中描述&nbsp;。这个文件的位于TOMCAT_HOME/webapps/dwr/WEB-INF/dwr.xml. 在&lt;allow&gt;标签中添加以下内容</p>
<p dir="ltr">&nbsp;&nbsp;&nbsp; &lt;create creator="new" javascript="MyTest" scope="application"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="class" value="com.test.ajax.DWRTest"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/create&gt;</p>
<p dir="ltr">4, 编写调用DWRTest类 getMyName的方法的HTML文件，test.html</p>
<p dir="ltr">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>"&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp; &lt;title&gt;DWR - My First AJAX&lt;/title&gt;<br />
&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br />
&nbsp; &lt;script type='text/javascript' src='/dwr/dwr/interface/MyTest.js'&gt;&lt;/script&gt;<br />
&nbsp; &lt;script type='text/javascript' src='/dwr/dwr/engine.js'&gt;&lt;/script&gt;<br />
&nbsp; &lt;script type='text/javascript' src='/dwr/dwr/util.js'&gt;&lt;/script&gt;<br />
&nbsp; &lt;script language="javascript"&gt;<br />
&nbsp; &nbsp;var mycall=function callBack(data){<br />
&nbsp; &nbsp;DWRUtil.setValue("demo1",data);<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;}<br />
&nbsp; &nbsp;function showMyName(){<br />
&nbsp; &nbsp;&nbsp;MyTest.getMyName(mycall);&nbsp;<br />
&nbsp; &nbsp;}</p>
<p dir="ltr">&nbsp; &nbsp;function clearName(){<br />
&nbsp; &nbsp;&nbsp;demo1.value="";&nbsp;<br />
&nbsp; &nbsp;}<br />
&nbsp; &lt;/script&gt;<br />
&nbsp; &lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;h1&gt;Ajax Test Page&lt;/h1&gt;<br />
&lt;input type="button" value="setMyName" onclick="javascript:showMyName()"&gt;&lt;input type="button" value="Clear" onclick="javascript:clearName()"&gt;&lt;br&gt;<br />
&lt;input type="text" id="demo1"&gt;&lt;/select&gt;&lt;br&gt;<br />
&lt;/body&gt;&lt;/html&gt;</p>
<p dir="ltr">&nbsp;5, 运行，在浏览器中输入 <a href="http://localhost:8080/dwr/test.html">http://localhost:8080/dwr/test.html</a></p>
<img src ="http://www.blogjava.net/1504/aggbug/219696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-08-03 15:00 <a href="http://www.blogjava.net/1504/archive/2008/08/03/219696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>收到神州offer</title><link>http://www.blogjava.net/1504/archive/2008/07/30/218857.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Wed, 30 Jul 2008 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/07/30/218857.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/218857.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/07/30/218857.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/218857.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/218857.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;">收到神州数码融信科技的电话，说面试通过了，要我去公司进行薪资待遇方面的商谈。说实话，自己觉得挺遗憾的，因为我已经选择区华工上班了。当时记得很难忘的一句话是，电话那边的小姐（应该是hr吧）说&#8220;你真的想好了吗？&#8221;。说实话，很希望能去神州数码，能去那里玩千万级别的数据处理。很清楚的记得当时面试的程先生说的，有机会玩玩千万级的数据处理，还是很有意思的。但是这次只能放弃了，我还有自己的理想，还希望能有几乎在进入大学的校门学习，所以，我选择去华工，希望用这两年的时间，能够努力去考研。如果以后还有机会，我一定会选择神州数码。感谢程先生和HR给予的机会，谢谢你们！<br />
</span>
<img src ="http://www.blogjava.net/1504/aggbug/218857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-07-30 23:04 <a href="http://www.blogjava.net/1504/archive/2008/07/30/218857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript中获取radio值得方法 【收藏】</title><link>http://www.blogjava.net/1504/archive/2008/07/30/218614.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Wed, 30 Jul 2008 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/07/30/218614.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/218614.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/07/30/218614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/218614.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/218614.html</trackback:ping><description><![CDATA[<p>Radio 是 HTML 中的单选框，同一个 form 中，name 相同的 Radio 构成一组，这一组中最多只允许有一个 Radio 被选中。</p>
<p>如果将 form 提交到服务器端 ASP 程序，ASP 程序要获得用户选择的那个 Radio 的 value 是非常方便的，用 request.Form("RadioName")，不必理会有几个 Radio。</p>
<p>但在 JS(JavaScript) 中就要复杂多了，我们不能像对其它元素（如：文本框）一样，使用 formid.objName.value 来取值，我们应该循环这个组的 Radio，判断其 checked 属性，再取值。</p>
<p>为了方便使用javascript获取radio的值，我写了一个通用的函数来实现：</p>
<p>function GetRadioValue(RadioName){<br />
&nbsp;&nbsp;&nbsp; var obj;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; obj=document.getElementsByName(RadioName);<br />
&nbsp;&nbsp;&nbsp; if(obj!=null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;obj.length;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(obj[i].checked){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return obj[i].value;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return null;<br />
}</p>
<p>比如，我们有一个name属性为：&#8220;myradio&#8221;的单选控件组，要得到选中的值，只需这样调用就可以了：</p>
<p>var RValue;</p>
<p>RValue=GetRadioValue("myradio");</p>
<p>如果没有给出的radioname控件，则直接返回null，或者这一组控件没有被选择的项，则也返回null。</p>
<img src ="http://www.blogjava.net/1504/aggbug/218614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-07-30 10:37 <a href="http://www.blogjava.net/1504/archive/2008/07/30/218614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用Javascript获得和设置FCKeditor值[收藏]</title><link>http://www.blogjava.net/1504/archive/2008/07/30/218613.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Wed, 30 Jul 2008 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/07/30/218613.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/218613.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/07/30/218613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/218613.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/218613.html</trackback:ping><description><![CDATA[<p><font color="#0000ff">利用Javascript取和设FCKeditor值也是非常容易的，如下：</font></p>
<p><font color="#0000ff">// 获取编辑器中HTML内容<br />
function getEditorHTMLContents(EditorName) { <br />
&nbsp;&nbsp;&nbsp; var oEditor = FCKeditorAPI.GetInstance(EditorName); <br />
&nbsp;&nbsp;&nbsp; return(oEditor.GetXHTML(true)); <br />
}</font></p>
<p><font color="#0000ff">// 获取编辑器中文字内容<br />
function getEditorTextContents(EditorName) { <br />
&nbsp;&nbsp;&nbsp; var oEditor = FCKeditorAPI.GetInstance(EditorName); <br />
&nbsp;&nbsp;&nbsp; return(oEditor.EditorDocument.body.innerText); <br />
}</font></p>
<p><font color="#0000ff">// 设置编辑器中内容<br />
function SetEditorContents(EditorName, ContentStr) { <br />
&nbsp;&nbsp;&nbsp; var oEditor = FCKeditorAPI.GetInstance(EditorName) ; <br />
&nbsp;&nbsp;&nbsp; oEditor.SetHTML(ContentStr) ; <br />
}</font></p>
<p><font color="#0000ff">FCKeditorAPI是FCKeditor加载后注册的一个全局对象，利用它我们就可以完成对编辑器的各种操作。</font></p>
<p><font color="#0000ff">在当前页获得 FCK 编辑器实例：<br />
var Editor = FCKeditorAPI.GetInstance('InstanceName');</font></p>
<p><font color="#0000ff">从 FCK 编辑器的弹出窗口中获得 FCK 编辑器实例：<br />
var Editor = window.parent.InnerDialogLoaded().FCK;</font></p>
<p><font color="#0000ff">从框架页面的子框架中获得其它子框架的 FCK 编辑器实例：<br />
var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');</font></p>
<p><font color="#0000ff">从页面弹出窗口中获得父窗口的 FCK 编辑器实例： <br />
var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');</font></p>
<p><font color="#0000ff">获得 FCK 编辑器的内容：<br />
oEditor.GetXHTML(formatted); // formatted 为：true|false，表示是否按HTML格式取出<br />
也可用： <br />
oEditor.GetXHTML();</font></p>
<p><font color="#0000ff">设置 FCK 编辑器的内容：<br />
oEditor.SetHTML("content", false); // 第二个参数为：true|false，是否以所见即所得方式设置其内容。此方法常用于"设置初始值"或"表单重置"哦作。</font></p>
<p><font color="#0000ff">插入内容到 FCK 编辑器：<br />
oEditor.InsertHtml("html"); // "html"为HTML文本</font></p>
<p><font color="#0000ff">检查 FCK 编辑器内容是否发生变化：<br />
oEditor.IsDirty();</font></p>
<p><font color="#0000ff">在 FCK 编辑器之外调用 FCK 编辑器工具条命令：<br />
命令列表如下：<br />
DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo</font></p>
<p><font color="#0000ff">使用方法如下：<br />
oEditor.Commands.GetCommand('FitWindow').Execute();</font></p>
<font color="#0000ff">= FCKConfig.BasePath + 'plugins/'&nbsp;&nbsp;<br />
// FCKConfig.Plugins.Add( 'placeholder', 'en,it' ) ; <br />
<br />
<br />
去 掉//后，就相当于把placeholder这个插件功能加上了，fckeditor的插件文件都在/editor/plugins/文件夹下分类按文件 夹放置的，对于fckeditor2.0来说，里面有两个文件夹，也就是有两个官方插件，placeholder这个文件夹就是我们刚才加上去的，主要用 于多参数或单参数自定义标签的匹配，这个在制作编辑模板时非常管用，要想看具体实例的话，大家可以去</font><a href="http://www.lioil.net/" target="_blank"><font color="#0000ff">下载</font></a><font color="#0000ff">acms 这个系统查看学习，另一个文件夹tablecommands就是编辑器里的表格编辑用到的了。当然，如果你想制作自己其它用途的插件，那就只要按照 fckeidtor插件的制作规则制作完放置在/editor/plugins/下就行，然后再在fckeidtor.js里再添加 FCKConfig.Plugins.Add('Plugin Name',',lang,lang');就可以了。<br />
<br />
第二部分 ，如何让编辑器一打开的时候，编辑工具条不出现，等点&#8220;展开工具栏&#8221;时才出现？Easy，FCKeditor本身提供了这个功能啦，打开fckconfig.js，找到<br />
<br />
FCKConfig.ToolbarStartExpanded = true ;<br />
改成<br />
FCKConfig.ToolbarStartExpanded = false ;<br />
就可以啦！<br />
<br />
第三部分，使用自己的表情图标，同样打开fckcofnig.js到最底部那一段<br />
<br />
<br />
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;<br />
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif'] ;<br />
FCKConfig.SmileyColumns = 8 ;<br />
FCKConfig.SmileyWindowWidth&nbsp;&nbsp;&nbsp; = 320 ;<br />
FCKConfig.SmileyWindowHeight = 240 ;<br />
<br />
上面这段已经是我修改过的了，为了我发表此文的版面不会被撑得太开，我把FCKConfig.SmileyImages那一行改得只有三个表情图了。<br />
<br />
第一行，当然是表情图标路径的设置，第二行是相关表情图标文件名的一个List，第三行是指弹出的表情添加窗口最每行的表情数，下面两个参数是弹出的模态窗口的宽和高喽。<br />
<br />
第四部分，文件上传管理部分<br />
<br />
此部分可能是大家最为关心的，上一篇文章简单的讲了如何修改来上传文件以及使用fckeidtor2.0才提供的快速上传功能。再我们继续再深层次的讲解上传功能<br />
<br />
FCKConfig.LinkBrowser = true ;<br />
FCKConfig.ImageBrowser = true ;<br />
FCKConfig.FlashBrowser = true ;在fckconfig.js找到这三句，这三句不是连着的哦，只是我把他们集中到这儿来了，设置为true的意思就是允许使用fckeditor来浏览 服务器端的文件图像以及flash等，这个功能是你插入图片时弹出的窗口上那个&#8220;浏览服务器&#8221;按钮可以体现出来，如果你的编辑器只用来自己用或是只在后台 管理用，这个功能无疑很好用，因为他让你很直观地对服务器的文件进行上传操作。但是如果你的系统要面向前台用户或是像blog这样的系统要用的话，这个安 全隐患可就大了哦。于是我们把其一律设置为false;如下<br />
<br />
FCKConfig.LinkBrowser = false ;<br />
FCKConfig.ImageBrowser = false ;<br />
FCKConfig.FlashBrowser = false ;<br />
<br />
这样一来，我们就只有快速上传可用了啊，好！接下来就来修改，同样以asp为范例进行，进入/editor/filemanager/upload/asp/打开config.asp，修改<br />
ConfigUserFilesPath = "/UserFiles/"这个设置是上传文件的总目录，我这里就不动了，你想改自己改了<br />
<br />
好，再打开此目录下的upload.asp文件，找到下面这一段<br />
<br />
<br />
Dim resourceType<br />
If ( Request.QueryString("Type") &lt;&gt; "" ) Then<br />
resourceType = Request.QueryString("Type")<br />
Else<br />
resourceType = "File"<br />
End If <br />
然后再在其后面添加<br />
<br />
<br />
ConfigUserFilesPath = ConfigUserFilesPath &amp; resourceType &amp;"/"&amp; Year(Date()) &amp;"/"&amp; Month(Date()) &amp;"/" <br />
这样的话，上传的文件就进入&#8220;/userfiles/文件类型（如image或file或flash)/年/月/&#8221;这样的文件夹下了，这个设置对单用户来用已经足够了，如果你想给多用户系统用，那就这样来改<br />
<br />
<br />
ConfigUserFilesPath = ConfigUserFilesPath &amp; Session("username") &amp; resourceType &amp;"/"&amp; Year(Date()) &amp;"/"&amp; Month(Date()) &amp;"/" <br />
这样上传的文件就进入&#8220;/userfiles/用户目录/文件类型/年/月/&#8221;下了，当然如果你不想这么安排也可以修改成别的，比如说用户目录再深一层等，这里的Session("username")请根据自己的需要进行修改或换掉。<br />
<br />
上传的目录设置完了，但是上传程序还不会自己创建这些文件夹，如果不存在的话，上传不会成功的，那么我们就得根据上面的上传路径的要求进行递归来生成目录了。<br />
<br />
找到这一段<br />
<br />
<br />
Dim sServerDir<br />
sServerDir = Server.MapPath( ConfigUserFilesPath )<br />
If ( Right( sServerDir, 1 ) &lt;&gt; "\" ) Then<br />
&nbsp;&nbsp;&nbsp; sServerDir = sServerDir &amp; "\"<br />
End If<br />
<br />
把它下面的这两行<br />
<br />
<br />
Dim oFSO<br />
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" ) <br />
用下面这一段代码来替换<br />
<br />
<br />
dim arrPath,strTmpPath,intRow<br />
strTmpPath = ""<br />
arrPath = Split(sServerDir, "\") <br />
Dim oFSO<br />
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )<br />
for intRow = 0 to Ubound(arrPath)<br />
&nbsp;&nbsp;&nbsp; strTmpPath = strTmpPath &amp; arrPath(intRow) &amp; "\"<br />
&nbsp;&nbsp;&nbsp; if oFSO.folderExists(strTmpPath)=false then<br />
&nbsp;&nbsp;&nbsp;&nbsp; oFSO.CreateFolder(strTmpPath)<br />
&nbsp;&nbsp;&nbsp; end if<br />
next <br />
用这段代码就可以生成你想要的文件夹了，在上传的时候自动生成。<br />
<br />
好 了，上传文件的修改到现在可以暂时告一段落了，但是，对于中文用户还存在这么个问题，就是fckeditor的文件上传默认是不改名的，同时还不支持中文 文件名，这样一来是上传的文件会变成&#8220;.jpg&#8221;这样的无法读的文件，再就是会有重名文件，当然重名这点倒没什么，因为fckeditor会自动改名，会 在文件名后加（1）这样来进行标识。但是，我们通常的习惯是让程序自动生成不重复的文件名<br />
<br />
在刚才那一段代码的下面紧接着就是<br />
' Get the uploaded file name.<br />
sFileName = oUploader.File( "NewFile" ).Name<br />
看清楚了，这个就是文件名啦，我们来把它改掉，当然得有个生成文件名的函数才行，改成下面这样<br />
<br />
'//取得一个不重复的序号<br />
Public Function GetNewID()<br />
dim ranNum<br />
dim dtNow<br />
randomize<br />
dtNow=Now()<br />
ranNum=int(90000*rnd)+10000<br />
GetNewID=year(dtNow) &amp; right("0" &amp; month(dtNow),2) &amp; right("0" &amp; day(dtNow),2) &amp; right("0" &amp; hour(dtNow),2) &amp; right("0" &amp; minute(dtNow),2) &amp; right("0" &amp; second(dtNow),2) &amp; ranNum<br />
End Function<br />
<br />
' Get the uploaded file name.<br />
sFileName = GetNewID() &amp;"."&amp; split(oUploader.File( "NewFile" ).Name,".")(1)<br />
<br />
这样一来，上传的文件就自动改名生成如20050802122536365.jpg这样的文件名了，是由年月日时分秒以及三位随机数组成的文件名了<br />
</font>
<img src ="http://www.blogjava.net/1504/aggbug/218613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-07-30 10:36 <a href="http://www.blogjava.net/1504/archive/2008/07/30/218613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>配置Tomcat6的虚拟路径（不修改server.xml）【原创总结】</title><link>http://www.blogjava.net/1504/archive/2008/06/19/209055.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Thu, 19 Jun 2008 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/06/19/209055.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/209055.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/06/19/209055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/209055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/209055.html</trackback:ping><description><![CDATA[<p>在conf下添加conf\catalina\localhost文件，在localhost下添加project.xml文件，此文件名与你的工程名一致。<br />
project.xml<br />
&lt;Context path="/itsm"&nbsp; docBase="G:/project/itsm/WebRoot"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug="0" privileged="true"/&gt;<br />
G:/project/itsm/WebRoot为工程的JSP页面存放的路径。<br />
启动tomcat，在浏览器地址栏里输入<a href="http://localhost:8080/itsm">http://localhost:8080/itsm</a>即可。</p>
 <img src ="http://www.blogjava.net/1504/aggbug/209055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-06-19 08:55 <a href="http://www.blogjava.net/1504/archive/2008/06/19/209055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AJAX和Struts的action交互使用[原创总结] </title><link>http://www.blogjava.net/1504/archive/2008/06/18/208949.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Wed, 18 Jun 2008 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/06/18/208949.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/208949.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/06/18/208949.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/208949.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/208949.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt">1.请求页面的JS,客户端实现<br />
&lt;script type="text/javascript"&gt;<br />
&nbsp;var flagvalue=0;<br />
&nbsp;var rest="";<br />
&nbsp;var resta="";<br />
&nbsp;//实现AJAX验证<br />
&nbsp;var http_request = false;<br />
&nbsp;var infoForm_flag=false;<br />
&nbsp;var lotId="";<br />
function Save()<br />
{<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var infoForm=document.projectSetForm;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infoForm_flag=infoForm;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lotId=infoForm.lotId.value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //表名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var dc = infoForm.tablename.value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(dc==""||dc==null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("表名称不能为空!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infoForm.tablename.focus(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infoForm.tablename.select();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;}<br />
function send_request(url)<br />
&nbsp; {//初始化、指定处理函数、发送请求的函数<br />
&nbsp;&nbsp;&nbsp; http_request = false;<br />
&nbsp;&nbsp;&nbsp; //开始初始化XMLHttpRequest对象<br />
&nbsp;&nbsp;&nbsp; if(window.XMLHttpRequest) <br />
&nbsp;&nbsp;&nbsp; { //Mozilla 浏览器<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request = new XMLHttpRequest();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (http_request.overrideMimeType) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {//设置MiME类别<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request.overrideMimeType('text/xml');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; else if (window.ActiveXObject) <br />
&nbsp;&nbsp;&nbsp; { // IE浏览器<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request = new ActiveXObject("Msxml2.XMLHTTP");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (e) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request = new ActiveXObject("Microsoft.XMLHTTP");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (e) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; if (!http_request) { // 异常，创建对象实例失败<br />
&nbsp;&nbsp;&nbsp;&nbsp; window.alert("不能创建XMLHttpRequest对象实例.");<br />
&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; http_request.onreadystatechange = processRequest;<br />
&nbsp;&nbsp;&nbsp; // 确定发送请求的方式和URL以及是否同步执行下段代码<br />
&nbsp;&nbsp;&nbsp; http_request.open("GET", url, true);<br />
&nbsp;&nbsp;&nbsp; http_request.send(null);<br />
&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; //处理返回信息的函数<br />
&nbsp;&nbsp;&nbsp;&nbsp; function processRequest() <br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (http_request.readyState == 4) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //判断对象状态<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (http_request.status == 200) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //信息已经成功返回，开始处理信息<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var str=http_request.responseText;//获得从服务器返回的文本信息<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(str=="no")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("您选择了模型分属不同的模板,请选择同一模板对应是模型!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //return false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infoForm_flag.action="projectSet.do?do=add&amp;lotId="+lotId;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infoForm_flag.submit();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infoForm_flag.action="projectSet.do?do=creattable&amp;save=-1";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infoForm_flag.submit();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //页面不正常<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("您所请求的页面有异常。");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp; function userCheck() <br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; send_request('projectSet.do?do=check&amp;rest='+rest); <br />
&nbsp; }<br />
&lt;/script&gt;<br />
2.ProjectSetAction.java </span>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">package com.gpdi.softevaluate.action;</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">import java.io.PrintWriter;<br />
import java.text.SimpleDateFormat;<br />
import java.util.ArrayList;<br />
import java.util.Calendar;<br />
import java.util.HashSet;<br />
import java.util.Map;<br />
import java.util.Set;</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">import java.util.Iterator;<br />
import java.util.List;</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">public class ProjectSetAction extends DispatchAction <br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">/**<br />
&nbsp; * &lt;p&gt;模板验证&lt;/p&gt;<br />
&nbsp; * @param mapping<br />
&nbsp; * @param form<br />
&nbsp; * @param request<br />
&nbsp; * @param response<br />
&nbsp; * @return<br />
&nbsp; * @throws Exception<br />
&nbsp; */<br />
&nbsp;public ActionForward check(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception<br />
&nbsp;{<br />
&nbsp;&nbsp; String rest="";<br />
&nbsp;&nbsp; String lotId="";<br />
&nbsp;&nbsp; String retn="";<br />
&nbsp;&nbsp; String flag="";<br />
&nbsp;&nbsp; CommDaoFactory mgObj = new CommDaoFactory();<br />
&nbsp;&nbsp; try<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rest=request.getParameter("rest");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lotId=request.getParameter("lotId");<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; catch(Exception e)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; }<br />
if(!rest.equals("0")||!rest.equals("")||rest!=null)<br />
&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp; flag="no";<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag="ok";</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintWriter out=response.getWriter();<br />
//服务器返回信息<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.write(flag);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp; //读取本Action所有的请求参数，将path重新构造，加上请求参数</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; //ActionForward forward= new ActionForward("project/projectSet.do?do=add&amp;lotId=6");<br />
&nbsp;&nbsp;&nbsp;&nbsp; //forward.setRedirect(true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //传参数后返回<br />
&nbsp;&nbsp;&nbsp;&nbsp; //return forward;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; return mapping.findForward(null);<br />
&nbsp;<br />
&nbsp;}<br />
</span></span><font size="3"><span style="font-size: 10pt"><font style="font-size: 10pt" size="3">public ActionForward creattable(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; //实现功能代码<br />
return mapping.findForward("create");<br />
}</font><br />
</span><span style="font-size: 10pt"><span style="font-size: 10pt">}<br />
3.struts.config.xml<br />
</span><span style="font-size: 10pt">&nbsp;&lt;action attribute="projectSetForm" name="projectSetForm"<br />
&nbsp;&nbsp;&nbsp;&nbsp;parameter="do" path="/project/projectSet" scope="request"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="com.gpdi.softevaluate.action.ProjectSetAction" validate="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;forward name="list" path="/project/viewProject.jsp" /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;forward name="add" path="/project/addProject.jsp" /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;forward name="create" path="/project/createTable.jsp" /&gt;<br />
&nbsp;&nbsp;&lt;/action&gt;</span></span></font></p>
<img src ="http://www.blogjava.net/1504/aggbug/208949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-06-18 17:47 <a href="http://www.blogjava.net/1504/archive/2008/06/18/208949.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>checkbox多选[总结] </title><link>http://www.blogjava.net/1504/archive/2008/06/18/208948.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Wed, 18 Jun 2008 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/06/18/208948.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/208948.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/06/18/208948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/208948.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/208948.html</trackback:ping><description><![CDATA[<p><span style="font-size: 8pt" twffan="done">1.<br />
&lt;td width="5%" class=content&gt;&lt;div align="center"&gt;全选&lt;input type=checkbox name = "check" onclick = "javascript:allcheck();"&gt;&lt;/div&gt;&lt;/td&gt; <br />
2.&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;td width=5%&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="checkbox" name="checkboxDelete"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="&lt;bean:write name="po" property="projectid" /&gt;"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;</span></p>
<p><span style="font-size: 8pt" twffan="done">js代码:<br />
&nbsp;&lt;script language="javascript"&gt;<br />
&nbsp;var tag = false; <br />
function doDelete()<br />
{<br />
&nbsp;if(deletecheck())<br />
&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;&nbsp; var theForm=document.projectSetForm;<br />
&nbsp; theForm.action = "projectSet.do?do=delete&amp;lotId=&lt;%=request.getParameter("lotId") %&gt;";<br />
&nbsp; theForm.submit();<br />
&nbsp;<br />
&nbsp;}<br />
}<br />
function deletecheck()<br />
{<br />
&nbsp;var theForm = document.projectSetForm;<br />
&nbsp;var checked = false;<br />
&nbsp;if(typeof(theForm.checkboxDelete.length)=="undefined"){<br />
&nbsp; if(theForm.checkboxDelete.checked == true){<br />
&nbsp; checked = true;<br />
&nbsp; }<br />
&nbsp;}else{<br />
&nbsp;var len = theForm.checkboxDelete.length;<br />
&nbsp;for (var i=0;i&lt;len;i++){<br />
&nbsp; if(theForm.checkboxDelete[i].checked == true){<br />
&nbsp; checked = true;<br />
&nbsp; break;<br />
&nbsp; }<br />
&nbsp;&nbsp; }<br />
&nbsp;}<br />
&nbsp;if(!checked){<br />
&nbsp;alert("请至少选择一条要删除的记录！")<br />
&nbsp;return(false);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;if(confirm("确定要删除吗？")){<br />
&nbsp; return(true);<br />
&nbsp; }<br />
&nbsp;return(false); <br />
}<br />
function allcheck(){<br />
&nbsp;var theForm = document.projectSetForm;<br />
&nbsp;var len = theForm.checkboxDelete.length;<br />
&nbsp;var i = 0<br />
&nbsp;if (tag == false)<br />
&nbsp; for (i=0;i&lt;len;i++){<br />
&nbsp;&nbsp; theForm.checkboxDelete[i].checked = true;<br />
&nbsp;&nbsp; tag = true;<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; <br />
&nbsp;else{<br />
&nbsp; for ( i=0;i&lt;len;i++){<br />
&nbsp;&nbsp; theForm.checkboxDelete[i].checked = false;<br />
&nbsp;&nbsp; tag = false;<br />
&nbsp; }<br />
&nbsp;}<br />
} <br />
&lt;/script&gt;</span></p>
<img src ="http://www.blogjava.net/1504/aggbug/208948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-06-18 17:46 <a href="http://www.blogjava.net/1504/archive/2008/06/18/208948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate实现one-to-one级联保存[自己总结] </title><link>http://www.blogjava.net/1504/archive/2008/06/18/208942.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Wed, 18 Jun 2008 09:41:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/06/18/208942.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/208942.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/06/18/208942.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/208942.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/208942.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">在具体的项目应用中,我们很少会用到一对一的级联操作,且很多时候一对一的操作可以通过多对一实现,但是一对一有自己的好处,就是在任何时候都能保证主外键数据的一致性,但是多对一的情况下未必能做到.<br />
我在项目中具体用到了一对一的级联操作,从网上拿了 一个例子来做,但是没有成功,于是只好自己研究,现在把修改后的代码帖出来.<br />
本例子使用<font size="3">hibernate3.jar</font>+oracle数据库<br />
库表:<br />
<font size="3">CARD_TEST</font>(<font size="3">CARDID[</font><font size="3">NUMBER(18)]</font>,<font size="3">CARDNUM[</font><font size="3">VARCHAR2(20)]</font>)<br />
<font size="3">USER_TEST</font>(<font size="3">USERID</font>[<font size="3">NUMBER(18)</font>],<font size="3">USERNAME</font>[<font size="3">VARCHAR2(20)</font>])<br />
<font size="3">TestMain.java</font><br />
</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">package com.gpdi.test;</span></span><font size="3"><br />
<span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">import org.hibernate.Session;<br />
import org.hibernate.Transaction;<br />
public class TestMain {<br />
/**<br />
&nbsp;* 存储一个用户<br />
&nbsp;* @param user<br />
&nbsp;*/<br />
public void save(User user){<br />
&nbsp;user.setUsername("TEST");<br />
&nbsp;Card card=new Card();<br />
&nbsp;//Card card1=new Card();<br />
&nbsp;card.setCardnum("HGJUYT");<br />
&nbsp;//card1.setCardnum("fghy55");<br />
&nbsp;user.setCard(card);<br />
&nbsp;//user.setCard(card1);<br />
&nbsp;Session session=HibernateSessionFactory.currentSession();<br />
&nbsp;&nbsp;&nbsp; card.setUser(user);<br />
&nbsp;&nbsp;&nbsp; //card1.setUser(user);<br />
&nbsp;Transaction tr=session.beginTransaction();<br />
&nbsp;session.save(user);<br />
&nbsp;//session.save(card);<br />
&nbsp;tr.commit();<br />
&nbsp;session.close();&nbsp;<br />
}</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;public static void main(String[] args) throws Exception {<br />
&nbsp;&nbsp;TestMain test=new TestMain();<br />
&nbsp;&nbsp;&nbsp;&nbsp; test.save(new User());<br />
&nbsp;}</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">}<br />
<font size="3">Card.java</font><br />
</span></span></font></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">package com.gpdi.test;</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">/**<br />
&nbsp;* Card generated by MyEclipse - Hibernate Tools<br />
&nbsp;*/</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">public class Card&nbsp; implements java.io.Serializable {</span></span><font size="3"><br />
<span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; // Fields&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; private Integer cardid;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private String cardnum;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private User user;</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; // Constructors</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; public User getUser() {<br />
&nbsp;&nbsp;return user;<br />
&nbsp;}<br />
&nbsp;public void setUser(User user) {<br />
&nbsp;&nbsp;this.user = user;<br />
&nbsp;}<br />
&nbsp;/** default constructor */<br />
&nbsp;&nbsp;&nbsp; public Card() {<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; /** full constructor */<br />
&nbsp;&nbsp;&nbsp; public Card(String cardnum) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.cardnum = cardnum;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; // Property accessors</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; public Integer getCardid() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.cardid;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public void setCardid(Integer cardid) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.cardid = cardid;<br />
&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; public String getCardnum() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.cardnum;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public void setCardnum(String cardnum) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.cardnum = cardnum;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
}<br />
</span></span></font></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt"><font size="3">User.java</font><br />
package com.gpdi.test;</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">import java.util.HashSet;<br />
import java.util.Set;</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">/**<br />
&nbsp;* User generated by MyEclipse - Hibernate Tools<br />
&nbsp;*/</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">public class User&nbsp; implements java.io.Serializable {</span></span><font size="3"><br />
<span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; // Fields&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp; private Integer userid;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private String username;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private Card card;<br />
&nbsp;&nbsp;&nbsp;&nbsp; //private Set card = new HashSet();</span><br />
<span style="font-size: 10pt" twffan="done">&nbsp;&nbsp;&nbsp; // Constructors</span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 10pt" twffan="done">&nbsp;&nbsp;&nbsp; public Card getCard() {<br />
&nbsp;&nbsp;return card;<br />
&nbsp;}</span><br />
</span><span style="font-size: 10pt"><span style="font-size: 10pt" twffan="done">&nbsp;public void setCard(Card card) {<br />
&nbsp;&nbsp;this.card = card;<br />
&nbsp;}</span><br />
</span><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;/** default constructor */<br />
&nbsp;&nbsp;&nbsp; public User() {<br />
&nbsp;&nbsp;&nbsp; }</span></span><span style="font-size: 10pt" twffan="done"><br />
<span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /** full constructor */<br />
&nbsp;&nbsp;&nbsp; public User(String username) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.username = username;<br />
&nbsp;&nbsp;&nbsp; }</span></span><span style="font-size: 10pt" twffan="done"><br />
<span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; // Property accessors</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; public Integer getUserid() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.userid;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public void setUserid(Integer userid) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.userid = userid;<br />
&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; public String getUsername() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.username;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public void setUsername(String username) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.username = username;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<font size="3">HibernateSessionFactory.java</font><br />
</span></span></font></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">package com.gpdi.test;</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">import org.hibernate.HibernateException;<br />
import org.hibernate.Session;<br />
import org.hibernate.cfg.Configuration;</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">/**<br />
&nbsp;* Configures and provides access to Hibernate sessions, tied to the<br />
&nbsp;* current thread of execution.&nbsp; Follows the Thread Local Session<br />
&nbsp;* pattern, see {@link http://hibernate.org/42.html}.<br />
&nbsp;*/<br />
public class HibernateSessionFactory {</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /** <br />
&nbsp;&nbsp;&nbsp;&nbsp; * Location of hibernate.cfg.xml file.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * NOTICE: Location should be on the classpath as Hibernate uses<br />
&nbsp;&nbsp;&nbsp;&nbsp; * #resourceAsStream style lookup for its configuration file. That<br />
&nbsp;&nbsp;&nbsp;&nbsp; * is place the config file in a Java package - the default location<br />
&nbsp;&nbsp;&nbsp;&nbsp; * is the default Java package.&lt;br&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Examples: &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; * &lt;code&gt;CONFIG_FILE_LOCATION = "/hibernate.conf.xml". <br />
&nbsp;&nbsp;&nbsp;&nbsp; * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".&lt;/code&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /** Holds a single instance of Session */<br />
&nbsp;private static final ThreadLocal threadLocal = new ThreadLocal();</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /** The single instance of hibernate configuration */<br />
&nbsp;&nbsp;&nbsp; private static final Configuration cfg = new Configuration();</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /** The single instance of hibernate SessionFactory */<br />
&nbsp;&nbsp;&nbsp; private static org.hibernate.SessionFactory sessionFactory;</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Returns the ThreadLocal Session instance.&nbsp; Lazy initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp; * the &lt;code&gt;SessionFactory&lt;/code&gt; if needed.<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; @return Session<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; @throws HibernateException<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static Session currentSession() throws HibernateException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session session = (Session) threadLocal.get();</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;if (session == null || !session.isOpen()) {<br />
&nbsp;&nbsp;&nbsp;if (sessionFactory == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cfg.configure(CONFIG_FILE_LOCATION);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sessionFactory = cfg.buildSessionFactory();<br />
&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.println("%%%% Error Creating SessionFactory %%%%");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;session = (sessionFactory != null) ? sessionFactory.openSession()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: null;<br />
&nbsp;&nbsp;&nbsp;threadLocal.set(session);<br />
&nbsp;&nbsp;}</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return session;<br />
&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; Close the single hibernate session instance.<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; @throws HibernateException<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static void closeSession() throws HibernateException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session session = (Session) threadLocal.get();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; threadLocal.set(null);</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (session != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Default constructor.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; private HibernateSessionFactory() {<br />
&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">}<br />
<font size="3">Card.hbm.xml</font><br />
</span></span></p>
<span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&lt;?xml version="1.0"?&gt;<br />
&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;<br />
&lt;!-- <br />
&nbsp;&nbsp;&nbsp; Mapping file autogenerated by MyEclipse - Hibernate Tools<br />
--&gt;<br />
&lt;hibernate-mapping&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;class name="com.gpdi.test.Card" table="CARD_TEST"&gt;<br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="cardid" type="integer"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="CARDID" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator class="foreign" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="property"&gt;user&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/generator&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="cardnum" type="string"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="CARDNUM" length="45" not-null="true" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreign-key="userid"指定外键关联的字段,必须,不可缺少 ,cascade="save-update"指定怎么操作级联,非必须<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;one-to-one name="user" foreign-key="userid" class="com.gpdi.test.User" cascade="save-update"&gt;&lt;/one-to-one&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/class&gt;<br />
&lt;/hibernate-mapping&gt;<br />
<br />
<font size="3">User.hbm.xml</font><br />
</span></span><span style="font-size: 10pt" twffan="done"><span style="font-size: 10pt">&lt;?xml version="1.0"?&gt;<br />
&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;<br />
&lt;!-- <br />
&nbsp;&nbsp;&nbsp; Mapping file autogenerated by MyEclipse - Hibernate Tools<br />
--&gt;<br />
&lt;hibernate-mapping&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;class name="com.gpdi.test.User" table="USER_TEST"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="userid" type="integer"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="USERID" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator class="increment"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="username" type="string"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="username" length="45" not-null="true" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;one-to-one name="card" foreign-key="cardid" class="com.gpdi.test.Card" cascade="save-update"&gt;&lt;/one-to-one&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set name="card" inverse="true" cascade="all"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key column="cardid" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;one-to-many class="com.gpdi.test.Card" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/set&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;many-to-one&nbsp; name="card" class="com.gpdi.test.Card"&nbsp; insert="true" unique="true" lazy="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;column name="cardid"&nbsp; length="18"&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/many-to-one&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; &lt;/class&gt;<br />
&lt;/hibernate-mapping&gt;<br />
<a title="Hibernate实现一对一实例源码" href="/Files/1504/one-to-one.rar">Hibernate实现一对一实例源码</a><br />
</span></span>
<img src ="http://www.blogjava.net/1504/aggbug/208942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-06-18 17:41 <a href="http://www.blogjava.net/1504/archive/2008/06/18/208942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>点击表头排序【整理】</title><link>http://www.blogjava.net/1504/archive/2008/06/17/208585.html</link><dc:creator>weesun一米阳光</dc:creator><author>weesun一米阳光</author><pubDate>Tue, 17 Jun 2008 04:48:00 GMT</pubDate><guid>http://www.blogjava.net/1504/archive/2008/06/17/208585.html</guid><wfw:comment>http://www.blogjava.net/1504/comments/208585.html</wfw:comment><comments>http://www.blogjava.net/1504/archive/2008/06/17/208585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/1504/comments/commentRss/208585.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/1504/services/trackbacks/208585.html</trackback:ping><description><![CDATA[<p><span style="font-size: 8pt">【1】这个非常好用， </span></p>
<div><span style="font-size: 8pt">&lt;head&gt;<br />
&lt;script type="text/javascript" src="sortabletable.js"&gt;&lt;/script&gt;<br />
&lt;link type="text/css" rel="StyleSheet" href="sortabletable.css" /&gt;</span></div>
<div><span style="font-size: 8pt">&lt;/head&gt;</span></div>
<div><span style="font-size: 8pt">在&lt;head&gt;&lt;/head&gt;之间加入</span></div>
<div><span style="font-size: 8pt">【2】&lt;table class="sort-table" id="table-1" cellspacing="0"&gt;</span></div>
<div><span style="font-size: 8pt">要排序的表中要加入 id="table-1"</span></div>
<div><span style="font-size: 8pt">【3】&lt;thead&gt;<br />
&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;String&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td title="CaseInsensitiveString"&gt;String&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Number&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Date&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;No Sort&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;/tr&gt;<br />
&lt;/thead&gt;</span></div>
<div><span style="font-size: 8pt">点击的表头之间加入&lt;thead&gt;&lt;/thead&gt;</span></div>
<div><span style="font-size: 8pt">剩下的之间加入&lt;tbody&gt;&lt;/tbody&gt;</span></div>
<div><span style="font-size: 8pt">&lt;tbody&gt;<br />
&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;apple&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Strawberry&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;45&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;2001-03-13&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Item 0&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Banana&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;orange&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;7698&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;1789-07-14&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Item 1&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;orange&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Banana&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;4546&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;1949-07-04&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;td&gt;Item 2&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;/tr&gt;</span></div>
<div><span style="font-size: 8pt">&nbsp;&lt;/tbody&gt;</span></div>
<div><span style="font-size: 8pt">【4】</span></div>
<div><span style="font-size: 8pt">&lt;/table&gt;</span></div>
<div><span style="font-size: 8pt">&lt;script type="text/javascript"&gt;</span></div>
<div><span style="font-size: 8pt">var st1 = new SortableTable(document.getElementById("table-1"),<br />
&nbsp;["String", "CaseInsensitiveString", "Number", "Date", "None"]);</span></div>
<div><span style="font-size: 8pt">&lt;/script&gt;<br />
</span></div>
<a title="点击表头排序" href="/Files/1504/sort.rar">点击表头排序</a>
  <img src ="http://www.blogjava.net/1504/aggbug/208585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/1504/" target="_blank">weesun一米阳光</a> 2008-06-17 12:48 <a href="http://www.blogjava.net/1504/archive/2008/06/17/208585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>