`
AutomaticThoughts
  • 浏览: 162712 次
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
tigerForm
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

basePath += "uipconfig/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
    <base href="<%=basePath%>">
    <title></title>
    <link href="./UIlib/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
    <link href="./UIlib/ligerUI/skins/Gray/css/all.css" rel="stylesheet" type="text/css" />
    <link href="./UIlib/ligerUI/skins/ligerui-icons.css" rel="stylesheet" type="text/css" />
    <link href="./UIlib/css/common.css" rel="stylesheet" type="text/css" />
    <script src="./UIlib/jquery/jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script src="./UIlib/ligerUI/js/core/base.js" type="text/javascript"></script> 
    <script src="./UIlib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
    <script src="./UIlib/jquery-validation/jquery.validate.min.js" type="text/javascript"></script>
    <script src="./UIlib/jquery-validation/jquery.metadata.js" type="text/javascript"></script> 
    <script src="./UIlib/jquery-validation/messages_cn.js" type="text/javascript"></script>
    <script src="./UIlib/js/validate.js" type="text/javascript"></script>
    <script src="./UIlib/js/LG.js" type="text/javascript"></script>
    <script src="./UIlib/json2.js" type="text/javascript"></script> 
    <script src="./Data/dnisData.js" type="text/javascript"></script>
    <script type="text/javascript">
        
        $(function ()
        {
            var levelList = [{"id":"1","text":"1"},{"id":"2","text":"2"},{"id":"3","text":"3"},{"id":"4","text":"4"},{"id":"5","text":"5"}];
        	//创建表单结构
            var mainform = $("#mainform");  
            var serviceID = '<%=request.getParameter("serviceID") == null ? "" : request.getParameter("serviceID")%>';
			var type = '<%=request.getParameter("type") %>';
			var rvalidate = null;
            mainform.ligerForm({
            	labelWidth:80,
            	width:260,
            	space:30,
 			   	fields:[
 		 			   	{id:"serviceID",name:"serviceID",newline:false,type:"hidden",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif"},
 		 			  	{display:"服务名",id:"serviceName",name:"serviceName",newline:true,type:"text",value:"GlobalService",cssClass:"field",group:"配置信息",groupicon:"./UIlib/icons/32X32/communication.gif"},
 		 			   	{display:"服务IP",id:"serviceIP",name:"serviceIP",newline:true,type:"text",value:"127.0.0.1",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif"},
 		      		 	{display:"服务端口",id:"servicePort",name:"servicePort",newline:true,type:"text",value:"18001",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif"},
 		      		 	{display:"服务路径",id:"servicePath",name:"servicePath",newline:true,type:"text",value:"./",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif"},
 		      			{display:"日志路径",id:"serviceLogPath",name:"serviceLogPath",newline:true,type:"text",value:"./logs/GlobalService/GlobalServer.log",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif"},
 		      			{display:"日志级别",id:"serviceLogLevel",name:"serviceLogLevel",newline:true,type:"select",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif",options:{valueFieldID:"serviceLogLevel",data:levelList}},
 		      			{display:"服务线程数",id:"serviceThreadNum",name:"serviceThreadNum",newline:true,type:"text",value:"10",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif"},
 		      			{display:"最大连接数",id:"serviceMaxClientNum",name:"serviceMaxClientNum",newline:true,type:"text",value:"5",cssClass:"field",groupicon:"./UIlib/icons/32X32/communication.gif"}
      		   		  ],
 			   	toJSON: JSON2.stringify
 		  	});
 		  	
			if(type == 'isView'){
				//查看操作
				$("input,select,textarea",mainform).attr("readonly", "readonly");
			}else if(type == 'isEdit'){
				//编辑操作
				$("#dnis",mainform).attr("readonly", "readonly");
			}

			if(type != 'isView'){
				//验证
            	jQuery.metadata.setType("attr", "validate"); 
            	rvalidate = LG.validate(mainform);
			}
			LG.setFormDefaultBtn(f_cancel,type == 'isView' ? null : f_save);

			function f_save()
			{
				alert("保存该表单");
			}

			function f_cancel()
			{
	            top.LG.closeCurrentTab(null);
			}
            $("#pageloading").hide();
        });
    </script>
</head>
<body style="padding:10px;height:100%; text-align:center;">
  <div id="pageloading"></div>
  <div title="基本信息">
     <form id="mainform" method="post"></form> 
  </div>
  <div id="maingrid"></div>
</body>
</html>
一个完整的table
									<TABLE class=gridData cellSpacing=0 cellPadding=1>
											<COLGROUP>
												<COL class=sort width=8%>
												<COL class=sort width=8%>
												<COL class=sort width=8%>
												<COL class=sort width=8%>
												<COL class=sort width=8%>
												<COL class=sort width=14%>
												<COL class=sort width=8%>
												<COL class=sort width=8%>
												<COL class=sort width=8%>
												<COL class=sort width=14%>
											</COLGROUP>
											<TBODY>
												
												<%
												    int i = 0;
													if (result != null) {
														Iterator iter = result.getResult().iterator();
														while (iter.hasNext()) {
															RecordFileTeamVO record = (RecordFileTeamVO) iter.next();
												%>
												<%
												   if (i % 2 == 0) {
												%>
												<TR class=grid_1 align="center">
												    <%
														}
											        if (i % 2 != 0) {
												    %>
													<TR class=grid>
														<%
															}
														i++;
													%>
													<TD class=grid align="center">
														<NOBR>
															<%=StringUtil.killNull(record.getAgentID())%>
														</NOBR>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%=StringUtil.killNull(record.getAgentName())%>
														</NOBR>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%=StringUtil.killNull(record.getDeviceDN())%>
														</NOBR>
													</TD>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%=StringUtil.killNull(record.getOriANI())%>
														</NOBR>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%=StringUtil.killNull(record.getOriDNIS())%>
														</NOBR>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%
																//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
																String startTime = StringUtil.killNull(record.getStartTime()).substring(0, 19);
															%>
															<%=startTime%>
														</NOBR>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%
																if (record.getTimeLength().toString().length() >= 0) {
																			//总时长(毫秒)
																			int s = record.getTimeLength().intValue();
																			int ms = s / 1000;
																			int s1 = ms % 60;
																			int m = ms / 60;
																			int m1 = m % 60;
																			int h = m / 60;
																			String timeLength = (h >= 10 ? (h + "") : ("0" + h))
																					+ ":" + (m1 >= 10 ? (m1 + "") : ("0" + m1))
																					+ ":" + (s1 >= 10 ? (s1 + "") : ("0" + s1));
																			//System.out.println(timeLength);
															%>
															<%=timeLength%>
															<%
																}
															%>

														</NOBR>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%
																String callType = "";
																if (record.getCallType() == 1) {
																	callType = "外线";
															%>
															<%=callType%>
															<%
																} else if (record.getCallType() == 2) {
																	callType = "内线";
															%>
															<%=callType%>
															<%
																}
															%>
														</NOBR>
													</TD>
													<TD class=grid align="center">
														<NOBR>
															<%
																String callDirection = "";
																	if (record.getCallDirection() == 1) {
																		callDirection = "呼入";
															%>
															<%=callDirection%>
															<%
																} else if (record.getCallDirection() == 2) {
																	callDirection = "呼出";
															%>
															<%=callDirection%>
															<%
																}
															%>
														</NOBR>
													</TD>
													<TD class=grid align="center">
														<%
															//StringBuffer str1 = new StringBuffer("/var/spool/hollyRecord/hollyRecordShare1/2011/04/3001/3001_20110416173030685.mp3");
															//格式:ftp://hollyipcc:hollyipcc@192.168.10.7//2011//04//3001//3001_20110416173030685.mp3
															String fileName = "";
															String[] arrStr = StringUtil.killNull(record.getFileName()).split("hollyRecord");
															//int arrLength  = arrStr.length;
															//System.out.println(arrLength);
															if(arrStr.length > 1){
																fileName = arrStr[1];//.replaceAll("/", "//");
																//System.out.println("--------" + arrStr[0] + "-------" + arrStr[1].replaceAll("/", "//"));
															}
															
														%>
														<a href="javascript:playrecord('<%=fileName%>');">听录音</a>

														<a href="<%=strHTTP + fileName%>">录音下载</a>
													</TD>

													<%
														}
													}
													%>

												</tr>

											</TBODY>
										</TABLE>
弹出框选择
function selectAgent(){
		 var selectAgentNames = document.getElementsByName("agentName")[0].value;
		 var url="../recordFileTeamAction.do?method=selectAgent&selectAgentNames="+encodeURI(encodeURI(selectAgentNames));
		 
		 var showx = event.screenX - event.offsetX - 400;
		 var showy = event.screenY - event.offsetY + 18;
		 var returnValue = window.open(url,'选择坐席',"height=400, width=600,left="+showx+",top="+showy+",toolbar=no,menubar=no, scrollbars=yes, resizable=no, location=no,status=no");
		}

<script> 
    var returnAgentNames = "<%=selectAgentNames%>";
	function onSelect(agentID,agentName) {
	    if(returnAgentNames==''){
	       returnAgentNames = agentName;
	    }else{
	       returnAgentNames = returnAgentNames+","+agentName;
	    }
	}
	
	function onClear() {
		opener.document.getElementsByName("agentName")[0].value = "";
		window.close();			
	}
	function onCertain() {
	    var cbs = document.getElementsByName("agentName");
	    returnAgentNames="";
	    for(var i = 0; i < cbs.length; i++){
                if(cbs[i].checked){
                  if(returnAgentNames==''){
	                      returnAgentNames = cbs[i].value;
	               }else{
	                     returnAgentNames = returnAgentNames+","+cbs[i].value;
	                }
                }
            }
		window.returnValue = returnAgentNames;
		opener.document.getElementsByName("agentName")[0].value = returnAgentNames;
		window.close();			
	}
	function initAgent(){
	    var strs=returnAgentNames.split(",");
	    for(i=0;i<strs.length;i++){
	       document.getElementById(strs[i]).checked = "true";
	    }
	}
</script>

              <TR vAlign=top height="100%">
                <TD>             
                 	<DIV class=gdDataArea id=divDataArea>
                        <TABLE class=gridData cellSpacing=0 cellPadding=1>
                         <COLGROUP> 
						  <COL class=grid width=40>
                          <COL class=grid width=70>
                          <COL class=grid width=70>
                          <COL class=grid width=70>
                          <TBODY>
                          <%
                         		Iterator i = result.iterator();
                         		while (i.hasNext()) {
                         		    RecordFileAgentVO o = (RecordFileAgentVO)i.next();
                         			String agentID = StringUtil.killNull(o.getAgentId());
                         			String agentName = StringUtil.killNull(o.getAgentName());
                         			String teamName = StringUtil.killNull(o.getTeamName());
                          %>
                            <TR class=grid>
                             <td class=grid>
                                  <input type="checkbox" name="agentName" id="<%=agentName%>" value="<%=agentName%>">
                            </td>
							<TD class=grid><%=agentID%></a></TD>
                            <TD class=grid><%=agentName%></a></TD>
                            <TD class=grid><%=teamName%></a></TD>
                           </TR>
                         <%
                         		}
                         %>
                         </TBODY></TABLE>
                    </DIV>
								</TD>
							</TR> 
动态下拉
															
															<select style="height: 100%; width: 99%"
																name="agentName" id="agentName" onchange="selectAgentName();">
																<option value="">
																	全部
																</option>
																<%
																	String agentName = "";
																	for (int i = 0; i < agentList.size(); i++) {//遍历技能组列表
																		String a = (String) agentList.get(i);
																		agentName = StringUtil.killNull(a);
																		if (agentName != "") {
																%>
																<option value="<%=agentName%>"><%=agentName%></option>
																<%
																	}
																	}
																%>
															</select>
															<input type="hidden" id="txtAgentName" style="height: 85%; width: 99%; border-color: #74A1E6" />
js控制tr样式
<body>
<table id="tbl">
	<tr><td>1</td></tr>
	<tr><td>2</td></tr>
	<tr><td>3</td></tr>
	<tr><td>4</td></tr>
	<tr><td>5</td></tr>
	<tr><td>6</td></tr>
	<tr><td>7</td></tr>
	<tr><td>8</td></tr>
	<tr><td>9</td></tr>
	<tr><td>10</td></tr>
</table>
</body>
<script type="text/javascript">
	window.onload=function()
		{
			var tbl = document.getElementById("tbl");
			rows = tbl.getElementsByTagName("tr");
			for(i=0;i<rows.length;i++)
			{
				var j = parseInt(i/3);
				if(j%2==0) rows[i].style.backgroundColor="#f00";
				else  rows[i].style.backgroundColor="#0f0";
			}
		}
</script>

JS判断第二个日期比第一个日期大
<script type="text/javascript">
	window.onload = function()
	{
		//这么写是为了实现js代码与html代码的分离,当我修改js时,不能影响html代码。
		document.getElementById("frm1").onsubmit = 
			function(){
				var d1 = this.d1.value;
				var d2 = this.d2.value;
				if(!verifyDate (d1)) {alert("第一个日期格式不对");return false;}
				if(!verifyDate (d2)) {alert("第二个日期格式不对");return false;}
				if(!compareDate(d1,d2)) {alert("第二个日期比第一日期小");return false;}			
			};
		}
		
		function compareDate(d1,d2)
		{
			var arrayD1 = d1.split("-");
			var date1 = new Date(arrayD1[0],arrayD1[1],arrayD1[2]);
			var arrayD2 = d2.split("-");
			var date2 = new Date(arrayD2[0],arrayD2[1],arrayD2[2]);	
			if(date1 > date2) return false;		
			return true;
		} 
		
		function verifyDate(d)
		{
			var datePattern = /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;
			return datePattern.test(d);
		}
</script>

<form id="frm1" action="xxx.html">
<input type="text" name="d1" />
<input type="text" name="d2" />
<input type="submit"/>
</form>
编写一个截取字符串的函数
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。
答:
	首先要了解中文字符有多种编码及各种编码的特征。
    假设n为要截取的字节数。
	public static void main(String[] args) throws Exception{
		String str = "我a爱中华abc我爱传智def';
		String str = "我ABC汉";
		int num = trimGBK(str.getBytes("GBK"),5);
		System.out.println(str.substring(0,num) );
	}
	
	public static int  trimGBK(byte[] buf,int n){
		int num = 0;
		boolean bChineseFirstHalf = false;
		for(int i=0;i<n;i++)
		{
			if(buf[i]<0 && !bChineseFirstHalf){
				bChineseFirstHalf = true;
			}else{
				num++;
				bChineseFirstHalf = false;				
			}
		}
		return num;
	}
FilenameFilter
FilenameFilter顾名思义,就是通过名字来过滤掉一些文件。 

这个接口很简单, 不用多解释, 就只有一个accept方法: 
Java代码  
boolean accept(File dir, String name);  

boolean accept(File dir, String name);


那来看看第一种实现 - 创建一个实现类 
Java代码  
public class ForFun {   
    public static void main(String[] args) {   
        File path = new File(".");   
        String[] nameList = path.list(new DirFilter(".class"));   
        for (String name : nameList) {   
            System.out.println(name);   
        }   
    }   
  
    static class DirFilter implements FilenameFilter {   
  
        private String filter;   
  
        public DirFilter(String filter) {   
            this.filter = filter;   
        }   
  
        @Override  
        public boolean accept(File dir, String name) {   
            String f = new File(name).getName();   
            return f.indexOf(filter) != -1;   
        }   
  
    }   
}  

public class ForFun {
	public static void main(String[] args) {
		File path = new File(".");
		String[] nameList = path.list(new DirFilter(".class"));
		for (String name : nameList) {
			System.out.println(name);
		}
	}

	static class DirFilter implements FilenameFilter {

		private String filter;

		public DirFilter(String filter) {
			this.filter = filter;
		}

		@Override
		public boolean accept(File dir, String name) {
			String f = new File(name).getName();
			return f.indexOf(filter) != -1;
		}

	}
}


意图很明确, 就是要打印出当前目录下面含有".class"的所有文件。 

第二种实现, 使用匿名类 
Java代码  
public class ForFun {   
    public static void main(String[] args) {   
        File path = new File(".");   
  
        String[] nameList = path.list(filter(".class"));   
        for (String name : nameList) {   
            System.out.println(name);   
        }   
    }   
  
    public static FilenameFilter filter(final String filterName) {   
        return new FilenameFilter() {   
            @Override  
            public boolean accept(File dir, String name) {   
                String f = new File(name).getName();   
                return f.indexOf(filterName) != -1;   
            }   
        };   
    }   
}  

public class ForFun {
	public static void main(String[] args) {
		File path = new File(".");

		String[] nameList = path.list(filter(".class"));
		for (String name : nameList) {
			System.out.println(name);
		}
	}

	public static FilenameFilter filter(final String filterName) {
		return new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				String f = new File(name).getName();
				return f.indexOf(filterName) != -1;
			}
		};
	}
}


好, 这样也是没问题的。 接下来更简短, 但个人觉得没必要, 程序的可读性不好 
Java代码  
public class ForFun {   
    public static void main(String[] args) {   
        File path = new File(".");   
        String[] nameList = path.list(new FilenameFilter() {   
            @Override  
            public boolean accept(File dir, String name) {   
                String f = new File(name).getName();   
                return f.indexOf(".class") != -1;   
            }   
        });   
        for (String name : nameList) {   
            System.out.println(name);   
        }   
    }   
}  
FileReader和FileWriter简单应用
编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
答:
		package cn.itcast;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class MainClass{
	public static void main(String[] args) throws Exception{
		FileManager a = new FileManager("a.txt",new char[]{'\n'});
		FileManager b = new FileManager("b.txt",new char[]{'\n',' '});		
		FileWriter c = new FileWriter("c.txt");
		String aWord = null;
		String bWord = null;
		while((aWord = a.nextWord()) !=null ){
			c.write(aWord + "\n");
			bWord = b.nextWord();
			if(bWord != null)
				c.write(bWord + "\n");
		}
		
		while((bWord = b.nextWord()) != null){
			c.write(bWord + "\n");
		}	
		c.close();
	}
	
}


class FileManager{

	String[] words = null;
	int pos = 0;
	public FileManager(String filename,char[] seperators) throws Exception{
		File f = new File(filename);
		FileReader reader = new FileReader(f);
		char[] buf = new char[(int)f.length()];
		int len = reader.read(buf);
		String results = new String(buf,0,len);
		String regex = null;
		if(seperators.length >1 ){
			regex = "" + seperators[0] + "|" + seperators[1];
		}else{
			regex = "" + seperators[0];
		}
		words = results.split(regex);
	}
	
	public String nextWord(){
		if(pos == words.length)
			return null;
		return words[pos++];
	}

}
设计4个线程
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc();
Dec dec=tt.new Dec();
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
}
}
private synchronized void inc(){
j++;
System.out.println(Thread.currentThread().getName()+"-inc:"+j);
}
private synchronized void dec(){
j--;
System.out.println(Thread.currentThread().getName()+"-dec:"+j);
}
class Inc implements Runnable{
public void run(){
for(int i=0;i<100;i++){
inc();
}
}
}
class Dec implements Runnable{
public void run(){
for(int i=0;i<100;i++){
dec();
}
}
}
}
Global site tag (gtag.js) - Google Analytics