<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>疯狂的生活</title>
    <description>天道酬勤，我相信技术决定一切！</description>
    <link>http://wangchao-17915566.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>as3 内存问题</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/205031" style="color:red;">http://wangchao-17915566.javaeye.com/blog/205031</a>&nbsp;
          发表时间: 2008年06月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>这两天做了个图片加载的项目，为内存问题头疼，每次loader之后内存猛涨，不知道什么问题。</p>
<p>解决：</p>
<pre name="code" class="java">public static function GPC()
		{
			 try 
            { 
                var lc1:LocalConnection = new LocalConnection(); 
                var lc2:LocalConnection = new LocalConnection(); 
                lc1.connect('name'); 
                lc2.connect('name2'); 
            } 
            catch (e:Error) 
            { 
            } 
         trace("..."+System.totalMemory);
		}</pre>
<p>&nbsp;</p>
<p>在as3中增加此段代码，进行回收，有所好转，但是还是会少量内存增加，每次15M左右，继续观察，修改中。</p>
<p>希望有人不吝赐教！</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/205031#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 18 Jun 2008 10:30:22 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/205031</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/205031</guid>
      </item>
      <item>
        <title>as3 将类参数传递</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/202491" style="color:red;">http://wangchao-17915566.javaeye.com/blog/202491</a>&nbsp;
          发表时间: 2008年06月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在as3中要想将参数传递给另一个函数，写法function a(obj:object)这种写法是不正确的。</p>
<p>解决：增加两个类文件</p>
<pre name="code" class="java">package {

	/**
	 * @author bacon
	 * @version 1.0
	 * @change  
	 */
	
	public class EventDelegate {
		
		public function EventDelegate() {
			
		}
		
		public static function create(f:Function,...arg):Function {
            var F:Boolean=false;
            var _f:Function=function(e:*,..._arg){
            _arg = arg;
            if(!F){
                F = true;
                _arg.unshift(e);
			}
            f.apply(null, _arg);
            };
            return _f;
        }
	}
}</pre>
<p>&nbsp;</p>
<p>此类是增加参数的函数，他支持多个参数传递。</p>
<p>创建事件函数</p>
<pre name="code" class="java">package {
	import flash.events.Event;
	
	/**
	 * @author bacon
	 * @version 1.0
	 * @change  
	 */
	
	public class ScreenEvent extends Event{
		public var _data:Object;
		

		
		public function ScreenEvent(e_type:String,_data:Object)
		{
			super(e_type);
			this._data = _data;
		}
	}
	
}</pre>
<p>&nbsp;</p>
<p>使用方法:</p>
<p>要从navigation类传入show类</p>
<p>navigation中加入</p>
<pre name="code" class="java">EventDelegate.create(showphoto, photolist);</pre>
<pre name="code" class="java">private function showphoto(event:MouseEvent,...arg):void
  {   
   dispatchEvent(new ScreenEvent("showphoto",arg[0]));
  }</pre>
<p>&nbsp;photolist为xml对象（任何对象都可以）。并将showphoto加入事件流中。</p>
<p>在main调用navigation中方法进行传参</p>
<pre name="code" class="java">navigation = new Navigation();//左	
navigation.addEventListener("showphoto", showphoto);

private function showphoto(e:ScreenEvent)
		{			
			show.showphoto(e._data);
		}</pre>
<p>&nbsp;这样就可以将参数传给show类了。</p>
<p>代码简写多，只是做学习。</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/202491#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 12 Jun 2008 14:24:32 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/202491</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/202491</guid>
      </item>
      <item>
        <title>flash as3 的socket聊天</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/197437" style="color:red;">http://wangchao-17915566.javaeye.com/blog/197437</a>&nbsp;
          发表时间: 2008年05月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>最近一直学习flash as3</p>
<p>今天跟着网上做了一个flash socket 聊天，主要了解下flash如何与java的socket通信。</p>
<p>一段代码CustomSocket.as</p>
<pre name="code" class="java">package  
{
	import flash.events.*;
    import flash.net.Socket;
    import flash.system.*;
    import flash.utils.ByteArray;
    import flash.utils.setTimeout;
    
    import fl.controls.TextArea;
    import fl.core.UIComponent;
	/**
	* ...
	* @author DefaultUser (Tools -&gt; Custom Arguments...)
	*/
	public class CustomSocket
	{
		private const CR:int = 13; // Carriage Return (CR)
        private const WILL:int = 0xFB; // 251 - WILL (option code)
        private const WONT:int = 0xFC; // 252 - WON'T (option code)
        private const DO:int   = 0xFD; // 253 - DO (option code)
        private const DONT:int = 0xFE; // 254 - DON'T (option code)
        private const IAC:int  = 0xFF; // 255 - Interpret as Command (IAC)
		
		
		private var serverURL:String;
		private var portNumber:int;
		private var socket:Socket;
		private var ta:TextArea;
		private var state:int = 0;
		System.useCodePage = false;
		public function CustomSocket(server:String, port:int, output:TextArea) 
		{
			serverURL = server;
			portNumber = port;
			ta = output;			
			socket = new Socket();
            socket.addEventListener(Event.CONNECT, connectHandler);			
            socket.addEventListener(Event.CLOSE, closeHandler);
            socket.addEventListener(ErrorEvent.ERROR, errorHandler);
            socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            socket.addEventListener(ProgressEvent.SOCKET_DATA, dataHandler);
			
			Security.loadPolicyFile("http://" + serverURL + ":" + portNumber + "/crossdomain.xml");
			
			try
			{ 
				msg("Trying to connect to" + serverURL + ":" + portNumber + "\n");
				socket.connect(serverURL,portNumber);
			}
			catch (error:Error)
			{
				msg(error.message + "\n");
                socket.close();
			}
		}
		public function ioErrorHandler(event:IOErrorEvent):void
		{
			msg("Unable to connect: socket error.\n");
		}
		 public function writeBytesToSocket(ba:ByteArray):void {
			 trace(ba);
            socket.writeBytes(ba);
            socket.flush();
        }
		 private function connectHandler(event:Event):void {			
            if (socket.connected) {
                msg("connected...\n");				
            } else {
                msg("unable to connect\n");
            }
        }        
		private function closeHandler(event:Event):void
		{
			 msg("closed...\n");
		}
		 private function errorHandler(event:ErrorEvent):void {
            msg(event.text + "\n");
        }
	    private function dataHandler(event:ProgressEvent):void {
            var n:int = socket.bytesAvailable;			
            // Loop through each available byte returned from the socket connection.
            while (--n &gt;= 0) {
                // Read next available byte.
                var b:int = socket.readUnsignedByte();				
                switch (state) {
                    case 0:
                        // If the current byte is the "Interpret as Command" code, set the state to 1.
                        if (b == IAC) {
                            state = 1;
                        // Else, if the byte is not a carriage return, display the character using the msg() method.
                        } else if (b != CR) {
                            msg(String.fromCharCode(b));
							}
                        break;
                    case 1:
                        // If the current byte is the "DO" code, set the state to 2.
                        if (b == DO) {
                            state = 2;
                        } else {
                            state = 0;
                        }
                        break;
                    // Blindly reject the option.
                    case 2:
                        /*
                            Write the "Interpret as Command" code, "WONT" code, 
                            and current byte to the socket and send the contents 
                            to the server by calling the flush() method.
                        */
                        socket.writeByte(IAC);
                        socket.writeByte(WONT);
                        socket.writeByte(b);
                        socket.flush();
                        state = 0;
                        break;
                }
            }
        }
		private function msg(value:String):void {			
            ta.text += value;
            ta.dispatchEvent(new Event(Event.CHANGE));
            setTimeout(setScroll, 100);
        }
		 public function setScroll():void {
            ta.verticalScrollPosition = ta.maxVerticalScrollPosition;
        }		
	}
	
}</pre>
<p>&nbsp;这个as有的地方没有理解：初始化定义常量时，不知道为什么定义？希望有人能够解释下，小弟不胜感激。</p>
<p>&nbsp;下面还有个Main .as</p>
<pre name="code" class="java">package 
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.utils.ByteArray;
	import CustomSocket;
	
	public class Main extends Sprite
	{	
		private var telnetClient:CustomSocket;

		public function Main() {
			setupUI();
		}
		private function connect(e:MouseEvent):void {
			//建立socket通信的链接
			telnetClient = new CustomSocket(serverName.text, int(portNumber.text), output);
		}
		private function sendCommand(e:MouseEvent):void {			
			var ba:ByteArray = new ByteArray();
			//将得到的信息写入ba中
			ba.writeMultiByte(command.text + "\n", "GBK");	
			//通过连接写入socket中
			telnetClient.writeBytesToSocket(ba);
			command.text = "";
		}
		private function setupUI():void {
			loginBtn.addEventListener(MouseEvent.CLICK,connect)	
			sendBtn.addEventListener(MouseEvent.CLICK,sendCommand);
		}	
	}
}</pre>
<p>&nbsp;最后看看java服务器端</p>
<p>代码一：</p>
<p>简单的MyServer .java</p>
<pre name="code" class="java">package com.cn.socket;

import java.io.*; 
import java.net.*; 
public class MyServer 
{ 
public static void main (String[] args) throws IOException 
{ 
	ServerSocket server=new ServerSocket(4567); 
	Socket client=server.accept(); 
	BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream())); 
	PrintWriter out=new PrintWriter(client.getOutputStream()); 
	while(true) 
	{ 
		String str=in.readLine(); 
		System.out.println(str); 
		out.println("你 说:  " + str + "\n"); 
		out.flush(); 
	if(str.equals("end")) 
	break; 
	} 
	client.close(); 
	} 
}
</pre>
<p>&nbsp;&nbsp;这个服务器端只能连接一段时间后自动停止。</p>
<p>服务器端代码二：</p>
<pre name="code" class="java">package com.cn.socket;

import java.io.IOException; 
import java.net.*; 
import java.util.concurrent.*; 
  
public class MultiThreadServer { 
    private int port=4567; 
    private ServerSocket serverSocket; 
    private ExecutorService executorService;//线程池 
    private final int POOL_SIZE=10;//单个CPU线程池大小 
     
    public MultiThreadServer() throws IOException{ 
        serverSocket=new ServerSocket(port); 
        //Runtime的availableProcessor()方法返回当前系统的CPU数目. 
        executorService=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE); 
        System.out.println("服务器启动"); 
    } 
     
    public void service(){ 
        while(true){ 
            Socket socket=null; 
            try { 
                //接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接 
                socket=serverSocket.accept(); 
                executorService.execute(new Handler(socket)); 
                 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
     
    public static void main(String[] args) throws IOException { 
        new MultiThreadServer().service(); 
    } 
  
} 
  
</pre>
<p>&nbsp;</p>
<pre name="code" class="java">package com.cn.socket;
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.io.PrintWriter; 
import java.net.*; 

public class Handler implements Runnable{ 
    private Socket socket; 
    public Handler(Socket socket){ 
        this.socket=socket; 
    } 
    private PrintWriter getWriter(Socket socket) throws IOException{ 
        OutputStream socketOut=socket.getOutputStream(); 
        return new PrintWriter(socketOut,true); 
    } 
    private BufferedReader getReader(Socket socket) throws IOException{ 
        InputStream socketIn=socket.getInputStream(); 
        return new BufferedReader(new InputStreamReader(socketIn)); 
    } 
    public String echo(String msg){ 
        return "echo:"+msg; 
    } 
    public void run(){ 
        try { 
            System.out.println("New connection accepted "+socket.getInetAddress()+":"+socket.getPort()); 
            BufferedReader br=getReader(socket); 
            PrintWriter pw=getWriter(socket); 
            String msg=null; 
            while((msg=br.readLine())!=null){ 
                System.out.println(msg); 
                pw.println(echo(msg)); 
                if(msg.equals("bye")) 
                    break; 
            } 
        } catch (IOException e) { 
            e.printStackTrace(); 
        }finally{ 
            try { 
                if(socket!=null) 
                    socket.close(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
}
</pre>
<p>&nbsp;服务器二建立了线程数量，并且可以不断进行端口连接。</p>
<p>这两中服务器选其一就ok。</p>
<p>as3的技术很差，只是为了学习进步。</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/197437#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 27 May 2008 14:14:00 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/197437</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/197437</guid>
      </item>
      <item>
        <title>flash as3 视频</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/195541" style="color:red;">http://wangchao-17915566.javaeye.com/blog/195541</a>&nbsp;
          发表时间: 2008年05月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;最近进行flash as3 的学习，刚刚接触，一个愚昧的问题，as3 与cs3有什么区别？</p>
<p>&nbsp; 问题说完了，我进行我的第一个flash项目</p>
<p>&nbsp; 在其中视频代码:</p>
<pre name="code" class="java"> video.attachCamera(camera);
			    ns = new NetStream(nc);
		        ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
				ns.attachCamera(camera); 
				//microphone
				ns.attachAudio(mic);
				ns.publish (filename, "record");</pre>
<p>&nbsp;这是捕捉视频音频，ns.publish上传到，red5&nbsp;服务器上。</p>
<p>要求制作皮肤，将皮肤通过xml加载进来。</p>
<pre name="code" class="xml">&lt;videos&gt;
    &lt;server&gt;rtmp://localhost/test/&lt;/server&gt;
    &lt;skin&gt;AsCamera.swf&lt;/skin&gt;  
	&lt;recordPath&gt;ShiPin&lt;/recordPath&gt;
	&lt;maxTime&gt;10&lt;/maxTime&gt;
	&lt;name&gt;test&lt;/name&gt;
	&lt;videoX&gt;0&lt;/videoX&gt;
	&lt;videoY&gt;50&lt;/videoY&gt;
	&lt;videoW&gt;100&lt;/videoW&gt;
	&lt;videoH&gt;100&lt;/videoH&gt;
&lt;/videos&gt;</pre>
<p>&nbsp;在as文件中进行，加载xml文件得到相关数据。</p>
<pre name="code" class="java">  public function AsCamera():void
	   {
		   //PLAY_XML = String(this.loaderInfo.parameters["config"]);
		   PLAY_XML ="config.xml";
		   urld = new URLLoader();
		   urld.addEventListener(Event.COMPLETE, xmlCompleteHandler);
		   urld.load(new URLRequest(PLAY_XML));
	   }
	   private function xmlCompleteHandler(event:Event):void
	   {
		   playlist = XML(event.target.data);
		   skinURL = playlist.skin;
		  serverURL = playlist.server;
		  serverURL += playlist.recordPath;
		   filename = playlist.name;
		   PT = playlist.maxTime;	
		   sreenX = new Number(playlist.videoX);
		   sreenY = new Number(playlist.videoY);
		   sreenW = new Number(playlist.videoW);
		   sreenH = new Number(playlist.videoH);
		     var ldr:Loader = new Loader();			
			 var urlReq:URLRequest = new URLRequest(skinURL);
			 ldr.load(urlReq);
			 addChild(ldr);
             ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,ldrCompleteHandler);
	}</pre>
<p>&nbsp; 得到相关数据，进行定制内容。</p>
<p>最后是关于播放的问题：</p>
<pre name="code" class="java">	public function Viewiewbutton(event:MouseEvent):void
		{
		     ns = new NetStream(nc);			 
			 ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,netAsyncErrorEvent);
             video.attachNetStream(ns);	
			 
			 ns.play(filename+".flv");			
			 ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandlerview);
			 trace("ok");
		}</pre>
<p>&nbsp;</p>
<p>这是播放代码，感觉有问题，可以播放，但是重复录制后，只能播放第一次录制的视频，不知道说明问题？希望有高手分析。</p>
<p>小弟第一次写flash的博客，如有问题请指教</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/195541#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 22 May 2008 10:44:22 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/195541</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/195541</guid>
      </item>
      <item>
        <title>DWR2.0中的addrows方法的cellFuncs方法</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/180857" style="color:red;">http://wangchao-17915566.javaeye.com/blog/180857</a>&nbsp;
          发表时间: 2008年04月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在很多地方看到了这个问题：</p>
<p>有人问道</p>
<pre name="code" class="js">var cellFuncs = [ 
<br />function(data) { return data; }, 
<br />function(data) { return data.toUpperCase(); }, 
<br />function(data) { 
<br />return "&lt;input type='button' value='Test' onclick='alert(\"Hi\");'/&gt;"; 
<br />}, 
<br />function(data) { return count++; } 
<br />];</pre>
<p>dwr.util.addRows( "demo1",[ 'Africa', 'America', 'Asia', 'Australasia', 'Europe' ], cellFuncs); <br /><br />执行以后table中显示的是&lt;input type='button' value='Test' onclick='alert("Hi");'/&gt;这个字符串 <br /><br />我希望能显示出来按钮并且能执行 <br /><br />function(data) { <br /><br />return "&lt;input type='button' value='Test' onclick='alert(\"Hi\");'/&gt;"; <br /><br />应该如何去写？</p>
<p>就这个问题，在dwr2.0，你可以设置这段代码是按钮显示出来</p>
<pre name="code" class="js">//将dwr设置成可显示标签的属性
<br />DWRUtil.setEscapeHtml(false);</pre>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/180857#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 09 Apr 2008 15:21:12 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/180857</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/180857</guid>
      </item>
      <item>
        <title>基于prototype的validation.js问题</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/180737" style="color:red;">http://wangchao-17915566.javaeye.com/blog/180737</a>&nbsp;
          发表时间: 2008年04月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: small;"><span style="font-size: x-small;">这两天我们使用基于prototype的validation.js表单验证，官方网站的例子是用div，可是我们用的是table，看了很长时间都不知道怎么弄，最后经过不断试验，和查看资料，得出了一下结论，如果使用table的&lt;tr&gt;&lt;td&gt;做表单，在页面上除了引入prototype.js,validation.js等，还需要写下如下代码：</span></span></p>
<p><span style="font-size: small;">
<pre name="code" class="js">&lt;script type="text/javascript"&gt;
<br />window.onload = function(){   
<br />    var validator = new Validation('frmRegister', {stopOnFirst:true, immediate:true});
<br />}
<br />&lt;/script&gt;	</pre>
<p><span style="font-size: x-small;">&nbsp;frmRegister为form的id值。</span></p>
<p><span style="font-size: x-small;">使用时，只需在输入框加入class="&nbsp;*** " 这里的*为你所用调用的js，例如class="required min-length-4 max-length-10;" ,除此还遇到了一个问题，就是如何验证下拉列表不为空，这个好像validation.js中没有，最后我才知道，是要自己写，将自己定义的js这样写：</span></p>
<p>&nbsp;</p>
<pre name="code" class="js"> ['validate-select', '请输选择下拉列表', function(v) {
<br />			return Validation.get('IsEmpty').test(v) ||  /[^0]/.test(v);
<br />			}],</pre>
<p>&nbsp;<span style="font-size: x-small;">通过正则表达式使值不能等于"0"实现。</span></p>
<p><span style="font-size: x-small;">最后说一下，validation.js中的内容：</span></p>
<li><span style="font-size: x-small;">required -- 非空域 <br /></span></li>
<li><span style="font-size: x-small;">validate-number -- 一个有效数 <br /></span></li>
<li><span style="font-size: x-small;">validate-digits -- 只能包含[0-9]任意个数字 <br /></span></li>
<li><span style="font-size: x-small;">validate-alpha -- 只能是字母[a-zA-Z] <br /></span></li>
<li><span style="font-size: x-small;">validate-alphanum -- 只能是字母和数字的组合 <br /></span></li>
<li><span style="font-size: x-small;">validate-date -- 只能是日期 <br /></span></li>
<li><span style="font-size: x-small;">validate-email -- 只能是有效的email <br /></span></li>
<li><span style="font-size: x-small;">validate-url -- 只能是有效的url地址 <br /></span></li>
<li><span style="font-size: x-small;">validate-date-au -- 日期的形式必须是dd/mm/yyyy <br /></span></li>
<li><span style="font-size: x-small;">validate-one-required -- 至少有一个被选中,例如一组checkbox, radiobutton,它们最好包含在一个div和span中 <br /></span></li>
<li><span style="font-size: x-small;">validate-date-cn -- 日期的形式必须是yyyy/mm/dd <br /></span></li>
<li><span style="font-size: x-small;">validate-integer -- 只能是整数,可以有正负号 <br /></span></li>
<li><span style="font-size: x-small;">validate-chinese -- 只能是中文 <br /></span></li>
<li><span style="font-size: x-small;">validate-ip -- 有效的IP地址 <br /></span></li>
<li><span style="font-size: x-small;">validate-phone -- 有效的电话(仅适用于中国) <br /></span></li>
<li><span style="font-size: x-small;">validate-mobile-phone -- 有效的手机号,在badqiu的版本中只验证了135的,有待改进 <br /></span></li>
<li><span style="font-size: x-small;">validate-equals-$otherInputId -- 必须和某个input field相等例如 validate-equals-otherInputId(此处$some表示一个特定的值) <br /></span></li>
<li><span style="font-size: x-small;">less-than-$otherInputId -- 小于某个input field less-than-otherInputId(此处$some表示一个特定的值) <br /></span></li>
<li><span style="font-size: x-small;">great-than-$otherInputId -- 大于某个input field less-than-otherInputId(此处$some表示一个特定的值) <br /></span></li>
<li><span style="font-size: x-small;">min-length-$number -- 最小长度是$number(此处$some表示一个特定的值) <br /></span></li>
<li><span style="font-size: x-small;">max-length-$number -- 最大长度是$number(此处$some表示一个特定的值) <br /></span></li>
<li><span style="font-size: x-small;">validate-file-$type1-$type2-$typeX -- file的input必须是声明的$type1 -- $typeX中的一种 <br /></span></li>
<li><span style="font-size: x-small;">validate-float-range-$minValue-$maxValue -- 必须是$minValue到$maxValue的一个浮点数 <br /></span></li>
<li><span style="font-size: x-small;">validate-int-range-$minValue-$maxValue -- 必须是$minValue到$maxValue的一个整数 <br /></span></li>
<li><span style="font-size: x-small;">validate-length-range-$minLength-$maxLength -- 输入字符串的长度必须在$minLength到$maxLength之间 <br /></span></li>
<li><span style="font-size: x-small;">max-value-$number -- 输入域的最大值是$number <br /></span></li>
<li><span style="font-size: x-small;">min-value-$number -- 输入域的最小值是$number <br /></span></li>
<li><span style="font-size: x-small;">validate-pattern-$patternAttributes -- 通过自定义pattern来验证输入域的正确性 <br /></span></li>
<li><span style="font-size: x-small;">validate-ajax -- 通过ajax来验证输入域</span>&nbsp;</li>
</span></p>
<p><span style="font-size: x-small;">这些属性都可以定义在表单验证输入框的class中。</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/180737#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 09 Apr 2008 10:52:41 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/180737</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/180737</guid>
      </item>
      <item>
        <title>jxl数据导入excel遇到的问题</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/178858" style="color:red;">http://wangchao-17915566.javaeye.com/blog/178858</a>&nbsp;
          发表时间: 2008年04月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>今天的任务是做报表查询，并且将查到的数据通过jsp导入excel中</p><p>下面看看jsp代码，我是怎么写的，大家是不是也有这样的问题。</p><pre name="code" class="html">&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot; language=&quot;java&quot; import=&quot;java.util.*,java.io.*&quot; errorPage=&quot;&quot; %&gt;
&lt;%@ page import=&quot;com.seavision.qjculture.service.impl.*;&quot;%&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt;
&lt;title&gt;导出到excel打印&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;% 

List list = new ArrayList();
			
response.reset();
        response.setContentType(&quot;application/msexcel&quot;);
        response.setHeader(&quot;content-disposition&quot;,&quot;attachment;filename=untitled.xls&quot;);//(1)
//      response.setHeader(&quot;Content-disposition&quot;,&quot;inline;filename=untitled.xls&quot;);//定义文件名(2)
        OutputStream os =response.getOutputStream();
			HiringQueryImpl reportManageExcelImpl = new HiringQueryImpl();
			try{			   
			 
			   list = (List)request.getSession().getAttribute(&quot;list&quot;);
			   reportManageExcelImpl.getDwrydtb(os,list);//把列表信息导入Excel
			
			}catch(Exception e){
			   e.printStackTrace();
			}			
			os.flush();
			os.close();
//			增加语句
			out.clear();//(3)
            out = pageContext.pushBody();//(4)
%&gt;
&lt;/body&gt;
&lt;/html&gt;


</pre><p>&nbsp;</p><p>开始写的代码：没有(1),(3),(4)处的代码</p><p>出现一下问题：</p><p>1，导出数据是直接在浏览器中打开，并没有产生excel文件，解决方法，把(2)处代码换成(1)处代码，ok。大家可以看到，两个属性有所不同哦，attachment和inline，大家而可以查查，回头给我发一下，呵呵。</p><p>2，如果是tomcat5.0以上好像出现异常：getOutputStream() has already been called for this response</p><p>解决方法，加入(3)(4)两句，原因：据说好像是在tomcat中jsp编译成servlet之后在函数_jspService(HttpServletRequest request, HttpServletResponse response)的最后<br />有一段这样的代码<br />finally {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);<br />&nbsp;&nbsp;&nbsp; }<br />这里是在释放在jsp中使用的对象，会调用response.getWriter(),因为这个方法是和<br />response.getOutputStream()相冲突的！所以会出现以上这个异常。</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/178858#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Apr 2008 15:24:30 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/178858</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/178858</guid>
      </item>
      <item>
        <title>XSL通过javascript的三级联动</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/178513" style="color:red;">http://wangchao-17915566.javaeye.com/blog/178513</a>&nbsp;
          发表时间: 2008年04月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>今天搞了个xsl三级联动 ，有需要的朋友可以看看。</p><p>先看看java代码</p><pre name="code" class="java">//所有单位
			List companyNameList = this.trainQuery.queryCompany();//查询所有机构
			for(int i = 0; i&lt; companyNameList.size(); i++) {  //循环编历机构集合
				Element usersXML = enterType.addElement(&quot;option1&quot;);
				
//				输出单位节点
				Company company = (Company) companyNameList.get(i);
				usersXML.addAttribute(&quot;id&quot;, company.getId().getCompanyId().toString());//机构id
				usersXML.addAttribute(&quot;name&quot;, company.getId().getCompanyName());//机构名称
				
//				通过单位的id得到部门信息
				List departmentList = this.systemQuery.searchDepartmentList(company.getId().getCompanyId()); //全部部门
				for (int j = 0; j &lt; departmentList.size(); j++) {
//					循环输出部门信息节点
					Element userXML2 = usersXML.addElement(&quot;option2&quot;);					
					Department  department= (Department) departmentList.get(j);
					if (department.getId().getDepartmentId() != null) {
						Element usersXML4 = enterType.addElement(&quot;option2&quot;);
//						将部门信息输出在一级节点之下
						userXML2.addAttribute(&quot;id&quot;, department.getId().getDepartmentId().toString());
						userXML2.addAttribute(&quot;name&quot;, department.getId().getDepartmentName().toString());
//						输出平级的节点
						usersXML4.addAttribute(&quot;id&quot;, department.getId().getDepartmentId().toString());
						usersXML4.addAttribute(&quot;name&quot;, department.getId().getDepartmentName().toString());
//						通过单位，部门得到岗位信息
						List postionlist = 
							this.hiringQuery.queryPositionRegBycid(company.getId().getCompanyId().toString(), department.getId().getDepartmentId().toString());
//						循环输出节点
						for(int k=0;k&lt;postionlist.size();k++){
							Element userXML3 = usersXML4.addElement(&quot;option3&quot;);	
							PositionReg positionReg = (PositionReg) postionlist.get(i);
							if(positionReg!=null){
								userXML3.addAttribute(&quot;id&quot;, positionReg.getPositionId());
								userXML3.addAttribute(&quot;name&quot;, positionReg.getPositionName());
//								编辑回显节点
								Element selectfirstlevel = postionId.addElement(&quot;selectfirstlevel&quot;);
								selectfirstlevel.addAttribute(&quot;firstlevelcode&quot;, company.getId().getCompanyId().toString());
								selectfirstlevel.addAttribute(&quot;secondlevelcode&quot;,department.getId().getDepartmentId().toString());
								Element selectsecondlevel = postionId.addElement(&quot;selectsecondlevel&quot;);
								selectsecondlevel.addAttribute(&quot;secondonelevelcode&quot;, department.getId().getDepartmentId().toString());
								selectsecondlevel.addAttribute(&quot;thirdlevelcode&quot;, positionReg.getPositionId());
							}
						}
					}
				}
			}</pre><p>&nbsp;</p><p>用xsl做有点繁琐，我都累了。</p><p>看看输出节点形式：</p><pre name="code" class="xml">&lt;position_name_list&gt;
    &lt;enterType&gt;
      &lt;option1 id=&quot;1&quot; name=&quot;西安曲江文化产业投资（集团）有限公司&quot;&gt;
        &lt;option2 id=&quot;16&quot; name=&quot;财务部&quot;/&gt;
        &lt;option2 id=&quot;17&quot; name=&quot;旅游部&quot;/&gt;
        &lt;option2 id=&quot;18&quot; name=&quot;市场部&quot;/&gt;
      &lt;/option1&gt;
      &lt;option2 id=&quot;16&quot; name=&quot;财务部&quot;/&gt;
      &lt;option2 id=&quot;17&quot; name=&quot;旅游部&quot;/&gt;
      &lt;option2 id=&quot;18&quot; name=&quot;市场部&quot;&gt;
        &lt;option3 id=&quot;dd92998aff9e11dc8f3dcf619afba614&quot; name=&quot;asd&quot;/&gt;
      &lt;/option2&gt;
      &lt;option1 id=&quot;2&quot; name=&quot;西安曲江文化旅游（集团）有限公司&quot;/&gt;
      &lt;option1 id=&quot;3&quot; name=&quot;西安曲江大雁塔景区管理服务有限公司&quot;/&gt;
      &lt;option1 id=&quot;4&quot; name=&quot;西安曲江大雁塔景区资产运营管理有限公司&quot;/&gt;
      &lt;option1 id=&quot;5&quot; name=&quot;西安曲江影视投资（集团）有限公司&quot;/&gt;
      &lt;option1 id=&quot;6&quot; name=&quot;西安曲江国际会展（集团）有限公司&quot;/&gt;
      &lt;option1 id=&quot;7&quot; name=&quot;西安曲江国际会展投资控股有限公司&quot;/&gt;
      &lt;option1 id=&quot;8&quot; name=&quot;西安曲江大唐不夜城文化商业有限公司&quot;/&gt;
      &lt;option1 id=&quot;9&quot; name=&quot;西安曲江建设集团有限公司&quot;/&gt;
      &lt;option1 id=&quot;10&quot; name=&quot;西安曲江文化演出（集团）有限公司&quot;/&gt;
      &lt;option1 id=&quot;11&quot; name=&quot;唐华宾馆有限公司&quot;/&gt;
      &lt;option1 id=&quot;12&quot; name=&quot;西安曲江欢乐世界有限公司&quot;/&gt;
      &lt;option1 id=&quot;13&quot; name=&quot;陕西法门寺文化景区建设有限公司&quot;/&gt;
      &lt;option1 id=&quot;14&quot; name=&quot;西安曲江职业围棋俱乐部有限公司&quot;/&gt;
    &lt;/enterType&gt;
    &lt;postionId&gt;
      &lt;selectfirstlevel firstlevelcode=&quot;1&quot; secondlevelcode=&quot;18&quot;/&gt;
      &lt;selectsecondlevel secondonelevelcode=&quot;18&quot; thirdlevelcode=&quot;dd92998aff9e11dc8f3dcf619afba614&quot;/&gt;
    &lt;/postionId&gt;
  &lt;/position_name_list&gt;</pre><p>&nbsp;</p><p>最后看看页面：</p><pre name="code" class="java">&lt;?xml version=&quot;1.0&quot; encoding=&quot;GB2312&quot;?&gt;
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
	&lt;xsl:output method=&quot;html&quot; encoding=&quot;GB2312&quot; indent=&quot;no&quot; /&gt;
	&lt;xsl:template match=&quot;root&quot;&gt;
 &lt;html&gt;
 &lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt;
&lt;title&gt;更新岗位信息&lt;/title&gt;
&lt;link  href=&quot;../../css/css.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table width=&quot;98%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt;
  &lt;tr class=&quot;trtop1&quot;&gt;
    &lt;td height=&quot;30&quot; class=&quot;wenzi1&quot;&gt;岗位信息管理&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;form action=&quot;QJ060204Action.do&quot; method=&quot;post&quot; name=&quot;position_name_listForm&quot;&gt;
&lt;table width=&quot;98%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;1&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;
	&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
      &lt;tr&gt;
        &lt;td width=&quot;12&quot; height=&quot;26&quot; class=&quot;tdtleftbg&quot;&gt;&nbsp;&lt;/td&gt;
        &lt;th class=&quot;tdtdline&quot;&gt;更新岗位信息&lt;/th&gt;

        &lt;td width=&quot;12&quot; class=&quot;tdtrightbg&quot;&gt;&nbsp;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
	&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;table width=&quot;100%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tbbg1&quot;&gt;
    &lt;tr&gt;
      &lt;td valign=&quot;top&quot;&gt;&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;wenzi3&quot;&gt;
          &lt;tbody&gt;  
          &lt;input name=&quot;recruit_position_id&quot; type=&quot;hidden&quot; value=&quot;{recruit_position/recruit_position_id}&quot;&gt;&lt;/input&gt;
          &lt;tr&gt;
            &lt;td width=&quot;15%&quot; align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位所属机构：&lt;/td&gt;
            &lt;td width=&quot;85%&quot; align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
                      &lt;select name=&quot;companyId&quot; onChange=&quot;selectfirstlevel('companyId','deptmentId','position_name_listForm');&quot;&gt;        
					    &lt;option value=&quot;0&quot; &gt;请选择--&lt;/option&gt;       
					  &lt;/select&gt;
					  &lt;/td&gt;
					  &lt;/tr&gt;
					  &lt;tr&gt;
			&lt;td width=&quot;15%&quot; align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位所属部门：&lt;/td&gt;
			&lt;td width=&quot;15%&quot; align=&quot;left&quot; class=&quot;trbg1&quot;&gt;			
							 &lt;select name=&quot;deptmentId&quot; onChange=&quot;selectsecond('deptmentId','postionId','position_name_listForm');&quot;&gt;        
					          &lt;option value=&quot;0&quot; &gt;请选择--&lt;/option&gt;       
					        &lt;/select&gt;
					        &lt;/td&gt;
					        &lt;/tr&gt;
					        &lt;tr&gt;
		    &lt;td width=&quot;15%&quot; align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位名称：&lt;/td&gt;
		    &lt;td width=&quot;15%&quot; align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
							  &lt;select name=&quot;postionId&quot;&gt;
					          &lt;option value=&quot;0&quot; &gt;请选择--&lt;/option&gt;      
					       &lt;/select&gt;
					       &lt;script language=&quot;javascript&quot;&gt;
					         firstlevel(&quot;companyId&quot;,&quot;deptmentId&quot;,&quot;position_name_listForm&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectfirstlevel/@firstlevelcode&quot;/&gt;&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectfirstlevel/@secondlevelcode&quot;/&gt;&quot;);
							 secondlevel(&quot;deptmentId&quot;,&quot;postionId&quot;,&quot;position_name_listForm&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectsecondlevel/@secondonelevelcode&quot;/&gt;&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectsecondlevel/@thirdlevelcode&quot;/&gt;&quot;);
							&lt;/script&gt;
					        &lt;/td&gt;
					  &lt;/tr&gt;  
            
            &lt;tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位编号：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
              &lt;input type=&quot;text&quot; name=&quot;recruit_position_code&quot;&gt;
               &lt;xsl:attribute name=&quot;value&quot;&gt;
                &lt;xsl:value-of select=&quot;recruit_position/recruit_position_code&quot;/&gt;
               &lt;/xsl:attribute&gt;
              &lt;/input&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
            &lt;!--tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位所属机构：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;&lt;label&gt;
              &lt;select name=&quot;position_of_org&quot; class=&quot;wenzi3&quot;&gt;
               &lt;xsl:for-each select=&quot;recruit_position/positionOrgList/position_of_org&quot;&gt;  
           		&lt;xsl:if test=&quot;CODE/@selected[.='1']&quot;&gt;
             	&lt;option selected='selected'&gt;		     
					&lt;xsl:attribute name=&quot;value&quot;&gt;
			  		&lt;xsl:value-of select=&quot;company_id&quot;/&gt;
					&lt;/xsl:attribute&gt; 
	           		&lt;xsl:value-of select=&quot;NAME&quot;/&gt;
			  	&lt;/option&gt; 
           		&lt;/xsl:if&gt; 			  
         		&lt;xsl:if test=&quot;CODE/@selected[.='0']&quot;&gt;
             	&lt;option&gt;		     
					&lt;xsl:attribute name=&quot;value&quot;&gt;
			   		&lt;xsl:value-of select=&quot;company_id&quot;/&gt;
					&lt;/xsl:attribute&gt;                  
		    		&lt;xsl:value-of select=&quot;NAME&quot;/&gt;
           		&lt;/option&gt; 
          		&lt;/xsl:if&gt;  
       			&lt;/xsl:for-each&gt;
              &lt;/select&gt;
                &lt;/label&gt;
              &lt;/td&gt;
            &lt;/tr--&gt;
            &lt;tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;&lt;p&gt;是否发布：&lt;/p&gt;&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;&lt;label&gt;
                &lt;input type=&quot;radio&quot; name=&quot;state&quot; value=&quot;1&quot;&gt;
                  &lt;xsl:if test=&quot;recruit_position/state[.='1']&quot;&gt;
	                &lt;xsl:attribute name=&quot;checked&quot;&gt;checked&lt;/xsl:attribute&gt;
	              &lt;/xsl:if&gt;
                &lt;/input&gt;
                发布
                &lt;input type=&quot;radio&quot; name=&quot;state&quot; value=&quot;0&quot;&gt;
                  &lt;xsl:if test=&quot;recruit_position/state[.='0']&quot;&gt;
	                &lt;xsl:attribute name=&quot;checked&quot;&gt;checked&lt;/xsl:attribute&gt;
	              &lt;/xsl:if&gt;
	              &lt;xsl:attribute name=&quot;value&quot;&gt;
		             &lt;xsl:value-of select=&quot;recruit_position/state&quot;/&gt;
		          &lt;/xsl:attribute&gt;
                &lt;/input&gt;
                不发布 &lt;/label&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;!-- 岗位性质 :0:全职,1:兼职,2: 临时,3:实习; --&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位性质：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;&lt;label&gt;
                &lt;input type=&quot;radio&quot; name=&quot;position_property&quot; value=&quot;1&quot;&gt;
                  &lt;xsl:if test=&quot;recruit_position/position_property[.='1']&quot;&gt;
	                &lt;xsl:attribute name=&quot;checked&quot;&gt;checked&lt;/xsl:attribute&gt;
	              &lt;/xsl:if&gt;
                &lt;/input&gt;
                全职
                &lt;input type=&quot;radio&quot; name=&quot;position_property&quot; value=&quot;2&quot;&gt;
                  &lt;xsl:if test=&quot;recruit_position/position_property[.='2']&quot;&gt;
	                &lt;xsl:attribute name=&quot;checked&quot;&gt;checked&lt;/xsl:attribute&gt;
	              &lt;/xsl:if&gt;	              
                &lt;/input&gt;
                兼职
                &lt;input type=&quot;radio&quot; name=&quot;position_property&quot; value=&quot;3&quot;&gt;
                  &lt;xsl:if test=&quot;recruit_position/position_property[.='3']&quot;&gt;
	                &lt;xsl:attribute name=&quot;checked&quot;&gt;checked&lt;/xsl:attribute&gt;
	              &lt;/xsl:if&gt;	              
                &lt;/input&gt;
                临时
                &lt;input type=&quot;radio&quot; name=&quot;position_property&quot; value=&quot;4&quot;&gt;
                  &lt;xsl:if test=&quot;recruit_position/position_property[.='4']&quot;&gt;
	                &lt;xsl:attribute name=&quot;checked&quot;&gt;checked&lt;/xsl:attribute&gt;
	              &lt;/xsl:if&gt;	              
                &lt;/input&gt;
                实习 &lt;/label&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位有效期：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
              &lt;input type=&quot;text&quot; name=&quot;from_date&quot;  onFocus=&quot;new WdatePicker(this,'%Y-%M-%D',false,'whyGreen')&quot;&gt;
                &lt;xsl:attribute name=&quot;value&quot;&gt;&lt;xsl:value-of select=&quot;recruit_position/from_date&quot;/&gt;&lt;/xsl:attribute&gt;
              &lt;/input&gt;
                至
              &lt;input type=&quot;text&quot; name=&quot;thru_date&quot;  onFocus=&quot;new WdatePicker(this,'%Y-%M-%D',false,'whyGreen')&quot;&gt;
                &lt;xsl:attribute name=&quot;value&quot;&gt;&lt;xsl:value-of select=&quot;recruit_position/thru_date&quot;/&gt;&lt;/xsl:attribute&gt;
              &lt;/input&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;招聘人数：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
              &lt;input type=&quot;text&quot; name=&quot;request_amount&quot;&gt;
               &lt;xsl:attribute name=&quot;value&quot;&gt;&lt;xsl:value-of select=&quot;recruit_position/request_amount&quot;/&gt;&lt;/xsl:attribute&gt;
              &lt;/input&gt;
                人&lt;/td&gt;
            &lt;/tr&gt;
      &lt;tr&gt;
      &lt;!-- 工作年限 1:不限,2:一年,3:两年,4:三年,5:四年,6:五年以上 --&gt;
      &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;工作年限：&lt;/td&gt;
      &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
      &lt;select name=&quot;work_experience_year&quot;&gt;
        &lt;xsl:for-each select=&quot;recruit_position/workExperienceYearList/work_experience_year&quot;&gt;  
           		&lt;xsl:if test=&quot;CODE/@selected[.='1']&quot;&gt;
             	&lt;option selected='selected'&gt;		     
					&lt;xsl:attribute name=&quot;value&quot;&gt;
			  		  &lt;xsl:value-of select=&quot;dict_code&quot;/&gt;
					&lt;/xsl:attribute&gt; 
	           		&lt;xsl:value-of select=&quot;NAME&quot;/&gt;
			  	&lt;/option&gt; 
           		&lt;/xsl:if&gt; 			  
         		&lt;xsl:if test=&quot;CODE/@selected[.='0']&quot;&gt;
             	&lt;option&gt;		     
					&lt;xsl:attribute name=&quot;value&quot;&gt;
			   		  &lt;xsl:value-of select=&quot;dict_code&quot;/&gt;
					&lt;/xsl:attribute&gt;                  
		    		&lt;xsl:value-of select=&quot;NAME&quot;/&gt;
           		&lt;/option&gt; 
          		&lt;/xsl:if&gt;  
       			&lt;/xsl:for-each&gt;
      &lt;/select&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;语言要求：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
              &lt;input type=&quot;text&quot; name=&quot;foreign_language&quot;&gt;
                &lt;xsl:attribute name=&quot;value&quot;&gt;
                   &lt;xsl:value-of select=&quot;recruit_position/foreign_language&quot;/&gt;
                &lt;/xsl:attribute&gt;
              &lt;/input&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;学历要求：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;
              &lt;input type=&quot;text&quot; name=&quot;diploma&quot;&gt;
                &lt;xsl:attribute name=&quot;value&quot;&gt;
                   &lt;xsl:value-of select=&quot;recruit_position/diploma&quot;/&gt;
                &lt;/xsl:attribute&gt;
              &lt;/input&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;岗位描述及要求：&lt;/td&gt;
              &lt;td align=&quot;left&quot; class=&quot;trbg1&quot;&gt;&lt;label&gt;
                &lt;textarea name=&quot;responsibility_describe&quot;&gt;                  
                   &lt;xsl:value-of select=&quot;recruit_position/responsibility_describe&quot;/&gt;               
                &lt;/textarea&gt;
                &lt;/label&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td colspan=&quot;2&quot; align=&quot;center&quot; class=&quot;trbg1&quot;&gt;&lt;input name=&quot;Submit22&quot; value=&quot;保存&quot; type=&quot;submit&quot;/&gt;
                &lt;input name=&quot;重置&quot; value=&quot;重置&quot; type=&quot;reset&quot;/&gt;&lt;/td&gt;
            &lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td&gt;
	&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
      &lt;tr&gt;
        &lt;td width=&quot;12&quot; height=&quot;26&quot; class=&quot;tddleftbg&quot;&gt;&nbsp;&lt;/td&gt;
        &lt;td class=&quot;tdtdline&quot;&gt;&nbsp;&lt;/td&gt;
        &lt;td width=&quot;12&quot; class=&quot;tddrightbg&quot;&gt;&nbsp;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;

	&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;

 &lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;</pre><p>&nbsp;</p><p>其中这两句是进行数据回显的</p><pre name="code" class="js"> &lt;script language=&quot;javascript&quot;&gt;
					         firstlevel(&quot;companyId&quot;,&quot;deptmentId&quot;,&quot;position_name_listForm&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectfirstlevel/@firstlevelcode&quot;/&gt;&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectfirstlevel/@secondlevelcode&quot;/&gt;&quot;);
							 secondlevel(&quot;deptmentId&quot;,&quot;postionId&quot;,&quot;position_name_listForm&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectsecondlevel/@secondonelevelcode&quot;/&gt;&quot;,&quot;&lt;xsl:value-of select=&quot;position_name_list/postionId/selectsecondlevel/@thirdlevelcode&quot;/&gt;&quot;);
							&lt;/script&gt;</pre><p>最后看看javascript</p><pre name="code" class="js">&lt;!-- 企业性质javascript 开始 --&gt;	
				
				&lt;script type=&quot;text/javascript&quot;&gt;	
          firstlevelcode=new Array(&lt;xsl:value-of select=&quot;count(position_name_list/enterType/option1)&quot;/&gt;)				
          secondlevelname=new Array(&lt;xsl:value-of select=&quot;count(position_name_list/enterType/option1)&quot;/&gt;);
          secondlevelcode=new Array(&lt;xsl:value-of select=&quot;count(position_name_list/enterType/option1)&quot;/&gt;);
       function firstlevel(preP,preC,formname,selectP,selectC)
             {
                   a=0;			
				
	            &lt;xsl:for-each select=&quot;position_name_list/enterType/option1&quot;&gt;
				
			if (selectP=='&lt;xsl:value-of select=&quot;@id&quot;/&gt;')
			  { a=&lt;xsl:value-of select=&quot;position()&quot;/&gt;;tempoption=new Option('&lt;xsl:value-of                        

           select=&quot;@name&quot;/&gt;','&lt;xsl:value-of select=&quot;@id&quot;/&gt;',false,true); }
			else
			  { tempoption=new Option('&lt;xsl:value-of select=&quot;@name&quot;/&gt;','&lt;xsl:value-of select=&quot;@id&quot;/&gt;'); }
			eval('document.'+formname+'.'+preP+'.options[&lt;xsl:value-of select=&quot;position()&quot;/&gt;]=tempoption;');
			thissecondlevelcode =  new Array(&lt;xsl:value-of select=&quot;count(option2)&quot;/&gt;);
			thissecondlevelname =  new Array(&lt;xsl:value-of select=&quot;count(option2)&quot;/&gt;);
			&lt;xsl:for-each select=&quot;option2&quot;&gt;
			    thissecondlevelcode[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]='&lt;xsl:value-of select=&quot;@id&quot;/&gt;';
				thissecondlevelname[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]='&lt;xsl:value-of select=&quot;@name&quot;/&gt;';
			&lt;/xsl:for-each&gt;
			firstlevelcode[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]='&lt;xsl:value-of select=&quot;@id&quot;/&gt;';
			secondlevelcode[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]=thissecondlevelcode;
			secondlevelname[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]=thissecondlevelname;
	&lt;/xsl:for-each&gt;				
					
					
	&lt;![CDATA[	
					
eval('document.'+formname+'.'+preP+'.options[a].selected=true;');

b=0;	    
if (selectC!='0'  )
	{     		
		b=1;	 		
		for (i=0;i&lt;firstlevelcode.length;i++)
		{		 
		  if (selectP==firstlevelcode[i])
		  {  
			b=i+1;
			break;
		  }		 		  					
		}        
		 
        cityid=b;
      
      
      
        b=0;
        for (i=0;i&lt;secondlevelname[cityid-1].length;i++)
           {
             if (selectC==secondlevelcode[cityid-1][i])
               {b=i+1;tempoption=new Option(secondlevelname[cityid-1][i],secondlevelcode[cityid-1][i],false,true);}
             else
               tempoption=new Option(secondlevelname[cityid-1][i],secondlevelcode[cityid-1][i]);
               
		     eval('document.'+formname+'.'+preC+'.options[i+1]=tempoption;');
           }
        eval('document.'+formname+'.'+preC+'.options[b].selected=true;');
      }
 }
 function selectfirstlevel(preP,preC,formname)
   {
     cityid=eval('document.'+formname+'.'+preP+'.selectedIndex;');
     j=eval('document.'+formname+'.'+preC+'.length;');
     for (i=1;i&lt;j;i++)
        {eval('document.'+formname+'.'+preC+'.options[j-i]=null;')}
     if (cityid!=&quot;0&quot;)
       {
         for (i=0;i&lt;secondlevelname[cityid-1].length;i++)
            {
			
             tempoption=new Option(secondlevelname[cityid-1][i],secondlevelcode[cityid-1][i]);
             eval('document.'+formname+'.'+preC+'.options[i+1]=tempoption;');
            }
       }
    }	
					
					
	]]&gt;				
				&lt;/script&gt;
				
&lt;script type=&quot;text/javascript&quot;&gt;	
  secondonelevelcode=new Array(&lt;xsl:value-of select=&quot;count(position_name_list/enterType/option2)&quot;/&gt;)				
  thirdlevelname=new Array(&lt;xsl:value-of select=&quot;count(position_name_list/enterType/option2)&quot;/&gt;);
  thirdlevelcode=new Array(&lt;xsl:value-of select=&quot;count(position_name_list/enterType/option2)&quot;/&gt;);
 function secondlevel(preP,preC,formname,selectP,selectC)
   {
     a=0;			
				
	&lt;xsl:for-each select=&quot;position_name_list/enterType/option2&quot;&gt;
				
			if (selectP=='&lt;xsl:value-of select=&quot;@id&quot;/&gt;')
			  { a=&lt;xsl:value-of select=&quot;position()&quot;/&gt;;tempoption=new Option('&lt;xsl:value-of                        

           select=&quot;@name&quot;/&gt;','&lt;xsl:value-of select=&quot;@id&quot;/&gt;',false,true); }
			else
			  { tempoption=new Option('&lt;xsl:value-of select=&quot;@name&quot;/&gt;','&lt;xsl:value-of select=&quot;@id&quot;/&gt;'); }
			eval('document.'+formname+'.'+preP+'.options[&lt;xsl:value-of select=&quot;position()&quot;/&gt;]=tempoption;');
			thisthirdlevelcode =  new Array(&lt;xsl:value-of select=&quot;count(option3)&quot;/&gt;);
			thisthirdlevelname =  new Array(&lt;xsl:value-of select=&quot;count(option3)&quot;/&gt;);
			&lt;xsl:for-each select=&quot;option3&quot;&gt;
			    thisthirdlevelcode[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]='&lt;xsl:value-of select=&quot;@id&quot;/&gt;';
				thisthirdlevelname[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]='&lt;xsl:value-of select=&quot;@name&quot;/&gt;';
			&lt;/xsl:for-each&gt;
			secondonelevelcode[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]='&lt;xsl:value-of select=&quot;@id&quot;/&gt;';
			thirdlevelcode[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]=thisthirdlevelcode;
			thirdlevelname[&lt;xsl:value-of select=&quot;position()-1&quot;/&gt;]=thisthirdlevelname;
	&lt;/xsl:for-each&gt;				
					
					
	&lt;![CDATA[	
					
eval('document.'+formname+'.'+preP+'.options[a].selected=true;');

b=0;	    
		
		
	
		
if (selectC!='0'  )
	{     		
		b=1;	 		
		for (i=0;i&lt;secondonelevelcode.length;i++)
		{		 
		  if (selectP==secondonelevelcode[i])
		  {  
			b=i+1;
			break;
		  }		 		  					
		}        
		 
        cityid=b;
      
      
      
        b=0;
        for (i=0;i&lt;thirdlevelname[cityid-1].length;i++)
           {
             if (selectC==thirdlevelcode[cityid-1][i])
               {b=i+1;tempoption=new Option(thirdlevelname[cityid-1][i],thirdlevelcode[cityid-1][i],false,true);}
             else
               tempoption=new Option(thirdlevelname[cityid-1][i],thirdlevelcode[cityid-1][i]);
            eval('document.'+formname+'.'+preC+'.options[i+1]=tempoption;');
           }
        eval('document.'+formname+'.'+preC+'.options[b].selected=true;');
      }
 }
 function selectsecond(preP,preC,formname)
   {
		
		
		
		
     cityid=eval('document.'+formname+'.'+preP+'.selectedIndex;');
	
		j=eval('document.'+formname+'.'+preC+'.length;');
     for (i=1;i&lt;j;i++)
        {eval('document.'+formname+'.'+preC+'.options[j-i]=null;')}
     if (cityid!=&quot;0&quot;)
       {
		
		citytrueid=eval('document.'+formname+'.'+preP+'.selectedIndex;');
		citytrueid=eval('document.'+formname+'.'+preP+'.options['+citytrueid+'].value;');
		
		
		
		for (i=0;i&lt;secondonelevelcode.length;i++)
		{		 
		  if (citytrueid==secondonelevelcode[i])
		  {  
			citytrueid=i+1;
			break;
		  }		 		  					
		} 		
		
         for (i=0;i&lt;thirdlevelname[citytrueid-1].length;i++)
            {
		   
		     	
             tempoption=new Option(thirdlevelname[citytrueid-1][i],thirdlevelcode[citytrueid-1][i]);
             eval('document.'+formname+'.'+preC+'.options[i+1]=tempoption;');
            }
       }
    }	
					
					
	]]&gt;				
	&lt;/script&gt;
&lt;!-- 企业性质javascript 结束--&gt;	</pre><p>&nbsp;</p>大家可以看到这个很麻烦，本来想用dwr，最后用了这个，头疼，不建议采用，可以学习学习。 <p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/178513#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 01 Apr 2008 17:47:51 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/178513</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/178513</guid>
      </item>
      <item>
        <title>javascript实现导出excel（可以导出表格线）</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/178043" style="color:red;">http://wangchao-17915566.javaeye.com/blog/178043</a>&nbsp;
          发表时间: 2008年03月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>今天无意找到了很久前的js导出excel功能，用了一下感觉不错，在网上看很多人做js导出excel，可是对表格线的导出excel总是头疼，我这里有一个简单的导出js，大家可以看看。 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这只是一个简单demo，首先静态页面</p><pre name="code" class="html">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt;
&lt;title&gt;综合信息管理系统 行政管理 安全检查  归档信息 列表&lt;/title&gt;
&lt;link href=&quot;../../resources/css/stlye.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;style type=&quot;text/css&quot;&gt;
body {
	margin-top: 10px;
	margin-bottom: 5px;
	margin-left: 5px;
	margin-right: 5px;
}
&lt;/style&gt;
&lt;body&gt;
&lt;table width=&quot;90%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td height=&quot;30&quot; align=&quot;left&quot; class=&quot;zibold13&quot;&gt;当前位置：行政管理 &gt;&gt; 安全检查 &gt;&gt; &lt;a href=&quot;aqGuidang.html&quot;&gt;归档信息&lt;/a&gt; &gt;&gt; 列表&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;table width=&quot;90%&quot; align=&quot;center&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;neikuangtop&quot;&gt;
  &lt;tr&gt;
    &lt;td width=&quot;7%&quot; height=&quot;30&quot; align=&quot;right&quot; class=&quot;left_line&quot;&gt;时间：&lt;/td&gt;
	&lt;td width=&quot;15%&quot; align=&quot;left&quot;&gt;&lt;input name=&quot;textfield&quot; type=&quot;text&quot; value=&quot;2006-09-18&quot; size=&quot;15&quot; height=&quot;16&quot;&gt;&lt;/td&gt;
	&lt;td width=&quot;3%&quot; align=&quot;right&quot;&gt;至&lt;/td&gt;
    &lt;td width=&quot;55%&quot; align=&quot;left&quot;&gt;&lt;input name=&quot;textfield2&quot; type=&quot;text&quot; value=&quot;2007-09-20&quot; size=&quot;15&quot; height=&quot;16&quot; /&gt;&lt;/td&gt;
    &lt;td width=&quot;10%&quot; align=&quot;right&quot; style=&quot;padding-right:10px;&quot;&gt;&lt;input type=&quot;button&quot; name=&quot;Submit&quot; value=&quot;查询&quot; onclick=&quot;javascript:location.href='#';&quot; /&gt;&lt;/td&gt;
    &lt;td width=&quot;10%&quot; align=&quot;left&quot; style=&quot;padding-left:10px;&quot;&gt;&lt;input type=&quot;button&quot; name=&quot;Submit3&quot; value=&quot;查询统计&quot; onclick=&quot;javascript:location.href='aqJiancha_Search.html';&quot; /&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;table id=&quot;table1&quot; width=&quot;90%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;waikuang&quot;&gt;
  &lt;tr&gt;
    &lt;td width=&quot;6%&quot; height=&quot;27&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;序号&lt;/td&gt;
	&lt;td width=&quot;10%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;时间&lt;/td&gt;
    &lt;td width=&quot;20%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;单位&lt;/td&gt;
    &lt;td width=&quot;18%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;项目&lt;/td&gt;
    &lt;td width=&quot;10%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;结果等级&lt;/td&gt;
    &lt;td width=&quot;10%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;检查机关&lt;/td&gt;
    &lt;td width=&quot;8%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;记录人&lt;/td&gt;
    &lt;td width=&quot;12%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;记录时间&lt;/td&gt;
    &lt;td width=&quot;6%&quot; align=&quot;center&quot; class=&quot;neikuangbold&quot;&gt;查看&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td height=&quot;21&quot; align=&quot;center&quot; class=&quot;neikuang&quot;&gt;1&lt;/td&gt;
	&lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;1980-02-02&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;武警总队&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;安全用电检查&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;2222222&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;总部&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;主席&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;1980-02-02&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;&lt;a href=&quot;aqChakanShow.html&quot;&gt;查看&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td height=&quot;21&quot; align=&quot;center&quot; class=&quot;neikuang&quot;&gt;2&lt;/td&gt;
	&lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;1980-02-02&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;武警总队&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;安全用电检查&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;2222222&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;总部&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;总理&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;1980-02-02&lt;/td&gt;
    &lt;td align=&quot;center&quot; class=&quot;neikuang&quot;&gt;&lt;a href=&quot;aqChakanShow.html&quot;&gt;查看&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;/table&gt;
&lt;table width=&quot;90%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td height=&quot;25&quot; align=&quot;right&quot;&gt;首页 | 上一页 | 下一页 | 尾页&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;table width=&quot;90%&quot; align=&quot;center&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td width=&quot;50%&quot; height=&quot;30&quot; align=&quot;right&quot; valign=&quot;bottom&quot; style=&quot;padding-right:10px;&quot;&gt;&lt;input type=&quot;submit&quot; name=&quot;Submit2&quot; onclick=&quot;preview()&quot; value=&quot;打印当前页&quot; class=&quot;waikuang&quot; &gt;&lt;/td&gt;
	&lt;td width=&quot;50%&quot; align=&quot;left&quot; valign=&quot;bottom&quot; style=&quot;padding-left:10px;&quot;&gt;&lt;input type=&quot;submit&quot; name=&quot;Submit22&quot; value=&quot;打印所有页&quot;&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;/body&gt;

&lt;/html&gt;</pre><p>&nbsp;&nbsp;</p><p>下面，调用js</p><pre name="code" class="js">&lt;script language=javascript&gt;
function preview() { 
window.clipboardData.setData(&quot;Text&quot;,document.all('table1').outerHTML);
try
{
var ExApp = new ActiveXObject(&quot;Excel.Application&quot;)
var ExWBk = ExApp.workbooks.add()
var ExWSh = ExWBk.worksheets(1)
ExApp.DisplayAlerts = false
ExApp.visible = true
}  
catch(e)
{
alert(&quot;您的电脑没有安装Microsoft Excel软件！&quot;)
return false
} 
 ExWBk.worksheets(1).Paste;	
 }
&lt;/script&gt;
</pre><p>&nbsp;</p><p>很简单，有兴趣的朋友可以试试。</p><p>这个js是根据table的id进行导出的，这样有个缺点：会将最后一列的&ldquo;查看&rdquo;进行导出excel输出。解决方法，在此页面再输出一个隐藏的table并给他标示，这个隐藏table只有数据，这样点击导出，只导出数据。方法繁重，希望有别的解决方法，如果有请指教。</p><p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/178043#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 31 Mar 2008 14:44:00 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/178043</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/178043</guid>
      </item>
      <item>
        <title>简单的MD5加密java类</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/177189" style="color:red;">http://wangchao-17915566.javaeye.com/blog/177189</a>&nbsp;
          发表时间: 2008年03月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">package com.seavision.qjculture.common;

/**
 * MD5的算法在RFC1321 中定义
 * 在RFC 1321中，给出了Test suite用来检验你的实现是否正确： 
 * MD5 (&quot;&quot;) = d41d8cd98f00b204e9800998ecf8427e 
 * MD5 (&quot;a&quot;) = 0cc175b9c0f1b6a831c399e269772661 
 * MD5 (&quot;abc&quot;) = 900150983cd24fb0d6963f7d28e17f72 
 * MD5 (&quot;message digest&quot;) = f96b697d7cb7938d525a2f31aaf161d0 
 * MD5 (&quot;abcdefghijklmnopqrstuvwxyz&quot;) = c3fcd3d76192e4007dfb496cca67e13b 
 * 
 * @author haogj
 *
 * 传入参数：一个字节数组
 * 传出参数：字节数组的 MD5 结果字符串
 */
public class MD5 {
 public static String getMD5(byte[] source) {
  String s = null;
  char hexDigits[] = {       // 用来将字节转换成 16 进制表示的字符
     '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',  'e', 'f'}; 
   try
   {
    java.security.MessageDigest md = java.security.MessageDigest.getInstance( &quot;MD5&quot; );
    md.update( source );
    byte tmp[] = md.digest();          // MD5 的计算结果是一个 128 位的长整数，
                                                // 用字节表示就是 16 个字节
    char str[] = new char[16 * 2];   // 每个字节用 16 进制表示的话，使用两个字符，
                                                 // 所以表示成 16 进制需要 32 个字符
    int k = 0;                                // 表示转换结果中对应的字符位置
    for (int i = 0; i &lt; 16; i++) {          // 从第一个字节开始，对 MD5 的每一个字节
                                                 // 转换成 16 进制字符的转换
     byte byte0 = tmp[i];                 // 取第 i 个字节
     str[k++] = hexDigits[byte0 &gt;&gt;&gt; 4 &amp; 0xf];  // 取字节中高 4 位的数字转换, 
                                                             // &gt;&gt;&gt; 为逻辑右移，将符号位一起右移
     str[k++] = hexDigits[byte0 &amp; 0xf];            // 取字节中低 4 位的数字转换
    } 
    s = new String(str);                                 // 换后的结果转换为字符串

   }catch( Exception e )
   {
    e.printStackTrace();
   }
   return s;
 }
 
 public static void main( String xu[] )
 { // 计算 &quot;a&quot; 的 MD5 代码，应该为：0cc175b9c0f1b6a831c399e269772661
  System.out.println( MD5.getMD5(&quot;qjCultureHr&quot;.getBytes()) );
 }

}


</pre>&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/177189#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 28 Mar 2008 11:51:03 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/177189</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/177189</guid>
      </item>
      <item>
        <title>DWR2.0中checkbox的value值问题(意外收获)</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/176975" style="color:red;">http://wangchao-17915566.javaeye.com/blog/176975</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp; 这个问题是继dwr缓慢的有一个让我伤脑筋的问题，我在百度和google想寻求解决方法，可是没有人知道，也许知道没有发帖。最后一个以外的想法，让我找到了解决方法。 <br />&nbsp;&nbsp;&nbsp;&nbsp; 我的功能原型是两个下拉列表的联动，这个在先前已经成功，下面就是最后一个下拉列表onchange事件，调用dwr中的回调方法，进行查询显示在我指定的table处。下拉列表联动我就不说了，这次主要说查询后的list回调，以及checkbox得到对象的主键问题。</p><p>首先看看底层service方法：</p><pre name="code" class="java">//	根据单位和部门得到所得信息
	public List getAllPeople(String companyId,String departmentId) {
//		初始化一个list
		List people = null;
		String hql=&quot;from EmployeeArchives as t where t.companyId ='&quot;+companyId+&quot;' and t.departmentId='&quot;+departmentId+&quot;'&quot;;
		try {
//			调用底层dao方法
			people = employeeArchivesDAO.find(hql);
		} catch (DAOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	System.out.println(people.size());
//    	返回list对象
        return people;
    }</pre><p>&nbsp;下面看看静态页面：</p><pre name="code" class="html">&lt;%@ page language=&quot;java&quot; import=&quot;java.util.*&quot; pageEncoding=&quot;UTF-8&quot;%&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;

  &lt;head&gt;
  &lt;%
        String path = request.getContextPath();
        String basePath = request.getScheme() + &quot;://&quot;
                        + request.getServerName() + &quot;:&quot; + request.getServerPort()
                        + path + &quot;/&quot;;
%&gt;
&lt;base href=&quot;&lt;%=basePath%&gt;&quot;&gt;
    &lt;title&gt;My JSP 'QJ020305.jsp' starting page&lt;/title&gt;
    &lt;META HTTP-EQUIV=&quot;pragma&quot; CONTENT=&quot;no-cache&quot;/&gt; 
    &lt;META HTTP-EQUIV=&quot;Cache-Control&quot; CONTENT=&quot;no-cache, must-revalidate&quot;/&gt; 
    &lt;META HTTP-EQUIV=&quot;expires&quot; CONTENT=&quot;Wed, 26 Feb 1997 08:21:57 GMT&quot;/&gt;
    &lt;meta http-equiv=&quot;expires&quot; content=&quot;0&quot;&gt;
    &lt;meta http-equiv=&quot;keywords&quot; content=&quot;keyword1,keyword2,keyword3&quot;&gt;
    &lt;meta http-equiv=&quot;description&quot; content=&quot;This is my page&quot;&gt;
&lt;script  src=&quot;&lt;%=basePath%&gt;/dwr/engine.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
&lt;script  src=&quot;&lt;%=basePath%&gt;/dwr/util.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
&lt;script  src=&quot;&lt;%=basePath%&gt;/dwr/interface/Deptement.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
&lt;script  src=&quot;&lt;%=basePath%&gt;/dwr/interface/Company.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
&lt;script  src=&quot;&lt;%=basePath%&gt;/dwr/interface/People.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
&lt;/head&gt;  
&lt;body onload=&quot;update1()&quot;&gt;
&lt;table width=&quot;98%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt;
  &lt;tr class=&quot;trtop1&quot;&gt;
    &lt;td height=&quot;30&quot; class=&quot;wenzi1&quot;&gt;添加新学员&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;form action=&quot;&quot; method=&quot;post&quot; name=&quot;form1&quot;&gt;
&lt;table width=&quot;98%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;1&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;
	&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
      &lt;tr&gt;
        &lt;td width=&quot;12&quot; height=&quot;26&quot; class=&quot;tdtleftbg&quot;&gt;&nbsp;&lt;/td&gt;
        &lt;th class=&quot;tdtdline&quot;&gt;xxx班级添加新学员&lt;/th&gt;
        &lt;td width=&quot;12&quot; class=&quot;tdtrightbg&quot;&gt;&nbsp;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
	&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tbbg1&quot;&gt;
     
      &lt;tr&gt;
        &lt;td colspan=&quot;3&quot; align=&quot;left&quot; class=&quot;trbg2&quot;&gt;单位:
          &lt;label&gt;
          &lt;select name=&quot;classid&quot; id=&quot;classid&quot; onchange=&quot;javascript:update2();&quot;&gt;
          &lt;/select&gt;
          &lt;/label&gt;
          部门:          
          &lt;select  name=&quot;userid&quot; id=&quot;userid&quot; onchange=&quot;javascript:init();&quot;&gt;
          &lt;/select&gt;
          &lt;input type=&quot;button&quot; name=&quot;Submit22&quot; value=&quot;查询&quot; onclick=&quot;document.location.href='QJ020305.htm';&quot;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td colspan=&quot;3&quot; align=&quot;left&quot; class=&quot;trbg2&quot;&gt;未添加学员名单：
          &lt;input type=&quot;button&quot; name=&quot;Submit223&quot; value=&quot;添加&quot; onclick=&quot;return A();&quot;&gt;
          &lt;input type=&quot;button&quot; name=&quot;Submit223&quot; value=&quot;全选&quot; onclick=&quot;return selected_all(this);&quot;&gt;
          &lt;input type=&quot;button&quot; name=&quot;Submit2222&quot; value=&quot;返回&quot; onClick=&quot;history.go(-1);&quot;/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;序号&lt;/td&gt;
        &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;选择&lt;/td&gt;
        &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;成员名称&lt;/td&gt;
        &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;主键&lt;/td&gt;
      &lt;/tr&gt;
     &lt;tbody id=&quot;peoplebody&quot;&gt;
    &lt;tr id=&quot;pattern&quot; style=&quot;display=none&quot;&gt;
      &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;
        &lt;span id=&quot;tableName&quot;&gt;序号&lt;/span&gt;&lt;br/&gt;
      &lt;/td&gt;
      &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;
        &lt;input id=&quot;checkbox&quot; name=&quot;checkbox&quot; type=&quot;checkbox&quot; /&gt;       
      &lt;/td&gt;
      &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;
       &lt;span id=&quot;tableAddress&quot;&gt;成员名称&lt;/span&gt;
      &lt;/td&gt;     
       &lt;td align=&quot;center&quot; class=&quot;trbg2&quot;&gt;
       &lt;span id=&quot;empid&quot;&gt;主键&lt;/span&gt;
      &lt;/td&gt;   
    &lt;/tr&gt;
  &lt;/tbody&gt;
    &lt;/table&gt;&lt;/td&gt;
  &lt;/tr&gt;     
  &lt;tr&gt;
    &lt;td&gt;
	&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
      &lt;tr&gt;
        &lt;td width=&quot;12&quot; height=&quot;26&quot; class=&quot;tddleftbg&quot;&gt;&nbsp;&lt;/td&gt;
        &lt;td class=&quot;tdtdline&quot;&gt;&nbsp;&lt;/td&gt;
        &lt;td width=&quot;12&quot; class=&quot;tddrightbg&quot;&gt;&nbsp;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
	&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
  &lt;div align=&quot;center&quot;&gt;
  &lt;/div&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre><p>&nbsp;</p><p>下面是js，以及回调方法：</p><pre name="code" class="js">&lt;script&gt; 
function update1() 
{ 
       Deptement.ClassList(createList1); 
} 
function createList1(data) 
{ 
    DWRUtil.removeAllOptions(&quot;classid&quot;); 
    DWRUtil.addOptions(&quot;classid&quot;,data); 
} 
function update2() 
{ 
       Company.UserList(DWRUtil.getValue(&quot;classid&quot;),createList2); 
} 
function createList2(data) 
{    
    DWRUtil.removeAllOptions(&quot;userid&quot;); 
    DWRUtil.addOptions(&quot;userid&quot;,data); 
} 
function query(){
    DWRUtil.removeAllRows(&quot;apartmentsbody&quot;);
    var classid = DWRUtil.getValue(&quot;classid&quot;);
    var userid = DWRUtil.getValue(&quot;userid&quot;);
    Query.queryList(classid,userid,fillt);
}
var cellFuncs = [
  function(data) { return data[0]; },
  function(data) { return data[1]; },
  function(data) { return data[2];},
  function(data) { return data[3]; },
 ];
function fillt(list){
   DWRUtil.addRows(&quot;apartmentsbody&quot;,list,cellFuncs);
}
function init() {
  fillTable();
}
var peopleCache = { };
var viewed = -1;
function fillTable() {
  var company = DWRUtil.getValue(&quot;classid&quot;);
  alert(&quot;+++++++++&quot;+company);
  var deptment = DWRUtil.getValue(&quot;userid&quot;);
  alert(&quot;+++++++++&quot;+deptment);
  People.getAllPeople(company,deptment,function(people) {
    dwr.util.removeAllRows(&quot;peoplebody&quot;, { filter:function(tr) {
      return (tr.id != &quot;pattern&quot;);
    }});  
    var person, id;
    people.sort(function(p1, p2) { return p1.employeeName.localeCompare(p2.employeeName); });
    for (var i = 0; i &lt; people.length; i++) {
      person = people[i];
      id = person.employeeArchivesId;          
      dwr.util.cloneNode(&quot;pattern&quot;, {idSuffix:id});     
      dwr.util.setValue(&quot;tableName&quot; + id, person.employeeName);
      dwr.util.setValue(&quot;tableSalary&quot; + id, person.gender);
      dwr.util.setValue(&quot;tableAddress&quot; + id, person.nativePlace);       
      dwr.util.setValue(&quot;checkbox&quot; +id, person.employeeArchivesId);     
      dwr.util.setValue(&quot;empid&quot; +id, person.employeeArchivesId);     
      // box.innerHTML=&quot;&lt;input id='checkbox' type='checkbox'  value='id' /&gt;&quot;;
      // document.getElementById(&quot;checkbox&quot;).value=id;
      $(&quot;pattern&quot; + id).style.display = &quot;block&quot;;     
      peopleCache[id] = person;
    }
  });
}
&lt;/script&gt; </pre><p>&nbsp;</p><p>这个js包括了两个查询回调方法，都可以用，一个使用 DWRUtil.addRows&quot;apartmentsbody&quot;,list,cellFuncs);这个方法，是可以显示的，但是要循环输出一个按钮，或者是checkbox有点难，至少我不会，如果有朋友知道，可以给我恢复一下，让我也能学习点东西，谢谢。</p><p>第二个方法就是fillTable()这个函数，他得到list后，利用dwr与spring整合后的convert元素中bean配合，正如我上面定义的一个person变量，将list循环转化为person.最后输出。以上这些我想大家也都做过。</p><p>&nbsp;&nbsp;&nbsp; 下面是我遇到的困难，以及解决。我在循环的时候，大家应该已经看到，我想给checkbox赋值，并且是对象的主键，以便最后选择提交。就这个问题有难为我了两天，我查遍了所有资料，没有一个提及到，有个外国朋友说dwr2.0不能给checkbox这个标签setvalue我不信，但是一天以后我和他想的一样，弄得我简直就要神经了，可是我全选后，checkbox的值总是默认值&ldquo;on&rdquo;。我想了很多办法，可是都不行，不过有一种方法，让我有了想法，我看看dwr官方demo，他有一个table做了一个edit和delete按钮，上面有个onclick方法：edit（this.id）于是我想我onclick，checkbox的时候页写个这个方法试试，写完后运行ok，主键号可以得到，可是得到下来呢，我怎麽让提交能把这些id带过去呢，我想只要点一下，将主键写到一个文本域中（隐藏），不断累加，用逗号隔开，但是，如果我再点掉又触发了一次事件，再次写入文本域中，这样提交，会把不需要的东西提交，所以这样写，也不行。</p><p>下面是我的checkbox全选js </p><pre name="code" class="js">&lt;script&gt; 
function A(){
var allcheckboxs = document.getElementsByName(&quot;checkbox&quot;);
	var array = new Array();
	var isSelect = false;
	var index = 0;
	//取值
	for(i=0;i&lt;allcheckboxs.length;i++){
		if(allcheckboxs[i].checked){
			array[index] = allcheckboxs[i].id.substring(8);				
			index++;
			isSelect = true;
		}
	}
	if(!isSelect){   //判断是否选中
		alert(&quot;没有选中任何记录!!&quot;);
		return false;
	}else{ //有选中记录
			    if(confirm(&quot;是否保存信息?&quot;)){		
					javascript:location=&quot;QJ020305Action.do?logId=&quot;+array;	
					alert(&quot;成功保存信息&quot;);
					return true;
				}else{
				    return false;
				}
	}
}
function selected_all(obj){
	var allcheckboxs = document.getElementsByName(&quot;checkbox&quot;);
	var flag = false;
	
	for(i=0;i&lt;allcheckboxs.length;i++){
		flag = allcheckboxs[i].checked;
	}
	if(flag == false){
		for(i=0;i&lt;allcheckboxs.length;i++){
			allcheckboxs[i].checked = true;			
		}
	}else{
		for(i=0;i&lt;allcheckboxs.length;i++){
			allcheckboxs[i].checked = false;	
		}
	}	
}
&lt;/script&gt; </pre><p>眼力好的朋友们已经看到了和所有全选js不同的是</p><pre name="code" class="js">if(allcheckboxs[i].checked){
			array[index] = allcheckboxs[i].id.substring(8);				
			index++;
			isSelect = true;
		}</pre><p><br />这个地方我用到了allcheckboxs[i].id.substring(8);不向以前都是。value我试了很多次都不行，而现在用这个完全可以，只不过要substring，因为dwr出来的这个id是checkbox+id，这样就ok了，说了一大堆，这才是重点，网上没有人这样做。但是，这样可以，真是意外的收获和惊喜。</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/176975#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 17:27:03 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/176975</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/176975</guid>
      </item>
      <item>
        <title>寻觅dwr调用方法缓慢的问题</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/176218" style="color:red;">http://wangchao-17915566.javaeye.com/blog/176218</a>&nbsp;
          发表时间: 2008年03月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前几天我遇到了一个问题，让我百思不得其解。我们项目需要用dwr开发，以前也用过，可是这次需要和Spring整合，很快一个下拉列表联动就做好了，可是进入Tomcat中运行相当慢，我在网上差了很多资料，但是都是一场空，下来看看我这个项目第一次写的代码。</p>
<pre name="code" class="java">public class Deptement {
	private static SystemQuery systemQuery = null;
	private static TrainQuery trainQuery = null;
	
	
    Company company = new Company();
    Department department = new Department();
	public static void find(){		
	
	}
	
//	调用公司方法
	public Map ClassList() { 
//		得到spring上下文
		ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
				new String[] { "applicationContext-hibernate.xml" });
//       得到bean
		trainQuery = (TrainQuery)appContext.getBean("trainQueryTarget");
		List companylist=new ArrayList();
		Map reply = new HashMap(); 
//		调用bean方法
		companylist=trainQuery.queryCompany();	
		System.out.println("+++++++++++"+companylist.size());
		if(companylist.size()&gt;0){
			for(int i=0;i&lt;companylist.size();i++){			
				company =(Company) companylist.get(i);
				System.out.println("______"+company.getId().getCompanyId()+"______"+company.getId().getCompanyName());
//				循环将公司id与公司名称放入map
				reply.put(company.getId().getCompanyId(),company.getId().getCompanyName());
			}
		}
		System.out.println(reply.size());
//		返回map
        return reply; 
    } 
	
//	调用部门方法
	public Map UserList(String CLASSID){
//		得到spring上下文
		ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
				new String[] { "applicationContext-hibernate.xml" });
//		得到bean
		systemQuery = (SystemQuery)appContext.getBean("systemQueryTarget");
		List deptementlist=new ArrayList();		
		Map reply = new HashMap(); 
//		调用bean方法
		deptementlist = systemQuery.searchDepartmentList(Integer.parseInt(CLASSID));
		System.out.println("+++++++++++"+deptementlist.size());
		if(deptementlist.size()&gt;0){
			for(int i=0;i&lt;deptementlist.size();i++){			
				department =(Department) deptementlist.get(i);
				System.out.println("______"+department.getId().getCompanyId()+"______"+department.getId().getDepartmentName());
//				循环将部门id和名称放入map
				reply.put(department.getId().getDepartmentId(),department.getId().getDepartmentName());
			}
		}
		System.out.println(reply.size());
//		返回map
		return reply;
	}
}
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>这是后台方法，现在看看dwr文件</p>
<pre name="code" class="xml">&lt;dwr&gt; 
  &lt;allow&gt;  
     &lt;create creator="new" javascript="Deptement"&gt; 
      &lt;param name="class" value="com.seavision.qjculture.common.Deptement"/&gt; 
    &lt;/create&gt;  
     &lt;create creator="new" javascript="People"&gt; 
      &lt;param name="class" value="com.seavision.qjculture.common.People"/&gt; 
    &lt;/create&gt;     
  &lt;/allow&gt; 
&lt;/dwr&gt; </pre>
<p>&nbsp;</p>
<p>web.xml就不用看了，大家应该比我更熟悉。&nbsp;</p>
<p>前台页面我也不写了，这次重点不是在展现，是解决为什么调用慢。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 当这个功能完成后，我兴高采烈的将它部署到Tomcat下面，心想终于完了，开始运行，当我进入这个联动页面时，发现很久都没有响应，真不知道是怎么了，看看后台没有抛异常， 正郁闷的时候，突然页面出现了下拉列表的内容，大家可以想象得到这有多么长的时间才响应。这再交给客户，客户非跳起来不可，还什么ajax框架，比jsp响应还慢。</p>
<p>直到下班我都没有解决，效率真低，第二天我又重新寻找问题，其实高手们一看就可以知道我写的方法有问题，大家可以看到，这虽然是与spring连用，但是并没有与spring的bean配合，这是一个问题，最大的问题是每次调用bean方法是都得到一次spring的上下文，这显然给服务器无形的压力。终于找到问题了。于是我把方法写到service层，重新配置dwr文件</p>
<pre name="code" class="xml">&lt;dwr&gt; 
  &lt;allow&gt;  
         &lt;create creator="spring" javascript="Deptement"&gt; 
        &lt;param name="beanName" value="trainQueryTarget"/&gt;         
     &lt;/create&gt;   
     &lt;create creator="spring" javascript="Company"&gt; 
        &lt;param name="beanName" value="systemQueryTarget"/&gt;         
     &lt;/create&gt;   
     &lt;create creator="new" javascript="People"&gt; 
      &lt;param name="class" value="com.seavision.qjculture.common.People"/&gt; 
    &lt;/create&gt; 
  &lt;/allow&gt; 
&lt;/dwr&gt; </pre>
<p>&nbsp;</p>
<p>再次运行，问题解决了。不知道你们遇见过这个问题吗？我要申请专利啦。呵呵！</p>
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/176218#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Mar 2008 11:53:57 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/176218</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/176218</guid>
      </item>
      <item>
        <title>sqlerver2000使用存储过程导出insert语句</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/175361" style="color:red;">http://wangchao-17915566.javaeye.com/blog/175361</a>&nbsp;
          发表时间: 2008年03月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><img src="/" border="0" height="1" alt="" width="1" /></p><p>今天使用了一个通过存储过程生成sqlserver数据库insert语句的存储过程，我觉得很好用，谢谢这位高手了</p><pre name="code" class="java">if exists (select * from sysobjects where type='p' and  name='UspOutputData')
   drop proc UspOutputData
GO
CREATE PROCEDURE dbo.UspOutputData 
@tablename sysname 
AS 
declare @column varchar(2000) 
declare @columndata varchar(2000) 
declare @sql varchar(8000) 
declare @xtype tinyint 
declare @name sysname 
declare @objectId int 
declare @objectname sysname 
declare @ident int 
set nocount on 
-- 判斷對象是否存在 
set @objectId=object_id(@tablename) 
if @objectId is null 
begin 
print 'The object not exists' 
return 
end 
--此判断不严密 
set @objectname=rtrim(object_name(@objectId)) 
if @objectname is null or charindex(@objectname,@tablename)=0 
begin 
print 'object not in current database' 
return 
end 
-- 判斷對象是否是table 
if OBJECTPROPERTY(@objectId,'IsTable') &lt; &gt; 1 
begin 
print 'The object is not table' 
return 
end 
--不知道打印的意义
select @ident=status&amp;0x80 from syscolumns where id=@objectid and status&amp;0x80=0x80 
if @ident is not null 
print 'SET IDENTITY_INSERT '+@TableName+' ON' 

declare syscolumns_cursor cursor
for select c.name,c.xtype from syscolumns c where c.id=@objectid order by c.colid 
open syscolumns_cursor 
set @column='' 
set @columndata='' 
fetch next from syscolumns_cursor into @name,@xtype 
while @@fetch_status &lt; &gt;-1 
  begin 
    if @@fetch_status &lt; &gt;-2 
      begin 
        --if @xtype not in(189,34,35,99,98) --timestamp不需处理，image,text,ntext,sql_variant 暂时不处理 
          begin 
            set @column=@column+case when len(@column)=0 then'' else ','end+@name  
            set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','end 
                +case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char 
                      when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar 
                      when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime 
                      when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime 
                      when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier 
                      else @name end 
          end 
      end 
    fetch next from syscolumns_cursor into @name,@xtype 
  end 
close syscolumns_cursor 
deallocate syscolumns_cursor 
set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename 
print '--'+@sql 
exec(@sql) 
--不知道打印的意义
if @ident is not null 
print 'SET IDENTITY_INSERT '+@TableName+' OFF' 
GO

exec UspOutputData T_Sys_Dict_Data </pre><p>&nbsp;</p>觉得这个不错，最后使用exec UspOutputData T_Sys_Dict_Data 执行存储过程就ok了。 T_Sys_Dict_Data 是表名，任何表都可以。谢谢！
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/175361#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 24 Mar 2008 11:58:52 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/175361</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/175361</guid>
      </item>
      <item>
        <title>dwr路径让我苦闷</title>
        <author>wangchao_17915566</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wangchao-17915566.javaeye.com">wangchao_17915566</a>&nbsp;
          链接：<a href="http://wangchao-17915566.javaeye.com/blog/173020" style="color:red;">http://wangchao-17915566.javaeye.com/blog/173020</a>&nbsp;
          发表时间: 2008年03月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天，我做dwr项目，让我苦闷一天，路径简直太不可预料了，上个项目，路径写的和这次一样，上次成功而这次总是报没有定义js。<br />    在网上看有的人说是xml解析问题，我加入了xalan。jar还是不成功，路径写全路径还是一样。当时就像吧电脑砸了，最后改变方法，重新的一路径，ok<br />    在head标签内定义<br /> &lt;%<br />        String path = request.getContextPath();<br />        String basePath = request.getScheme() + "://"<br />                        + request.getServerName() + ":" + request.getServerPort()<br />                        + path + "/";<br />%><br />&lt;base href="&lt;%=basePath%>"><br /><br />路径写法<br />&lt;script  src="&lt;%=basePath%>/dwr/engine.js" text/javascript">&lt;/script> <br />&lt;script  src="&lt;%=basePath%>/dwr/util.js" "text/javascript">&lt;/script> <br />&lt;script src="&lt;%dwr/interface/ItemsBean.js" "text/javascript">/script> <br /><br />成功调用。<br />害怕不害怕
          <br/>
          <span style="color:red;">
            <a href="http://wangchao-17915566.javaeye.com/blog/173020#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 17 Mar 2008 15:29:18 +0800</pubDate>
        <link>http://wangchao-17915566.javaeye.com/blog/173020</link>
        <guid>http://wangchao-17915566.javaeye.com/blog/173020</guid>
      </item>
  </channel>
</rss>