2010-10-26 学习笔记

2010-10-06

时间格式

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

程序中:

HH 大写时为24小时制。

hh:小写时为12小时制。

SS: 大写时为毫米(不确定是不是毫米,但有时显示为3位数)。

ss: 小写时为妙。

SQL

用于分钟的oracle格式值为MI,而不是大多数其他数据库中的MM,因为oracle中不区分大小写。所以MM/mm取的是月份。

比如HH:MI:SS,而不是HH:MM:SSMMoracle中代表月。mm代表妙

如何让<table>里某一列,当字符串过长时自动换行,让其宽度固定

<td style="width:120px;word-break:break-all">

实现文本框中输入非数字时当键盘弹起时清空文本框

onkeyup="this.value=this.value.replace(//D/g,'')"

设置MyEclipse提示 Alt+/

设置“Alt+/”的过程: 打开Window->Preference->Generate->Keys,出现一个大的对话框,"Alt+/"对应的命令名称是:"Content Assist",找到该条命令,单击选中它。这时在窗口下面的Binding When 会出现自动显示该命令的信息,删掉Binding中的信息,然后按下键盘Alt+/,这个时候Binding就会自动显示Alt+/的快捷键,然后when窗口中选择Editing Java Source ,最后点击OK 这样在编写Java代码时就可以使用"Alt+/"了,但是这样并不能在编写Jsp代码或其他代码中使用,如果希望在Jsp代码或其他代码也可以使用的话,在窗口中选择Content Assist命令,然后点击Copy Command按钮,这样就多了一条Content Assist命令,在新的命令中,设置Binding "Alt+/",设置When"In Dialogs and Windows"

(怎么设置完 jsp页面还是没提示啊 我操。)

SQL _NVL2

NVL2 (expr1, expr2, expr3) xpr1不为NULL返回expr2NULL返回expr3expr2expr3类型不同的话expr3会转换为expr2的类型

MyEclipse无法编译成class文件

今天用SVN将所有项目还原了一下。发现系统无法运行,提示tomcat对应项目下的WEB-INF/classes有个配置文件找不到。查看workspace源文件发现 WEB-INF/classes 下没有任何文件,tomcat对应项目下的WEB-INF/classes 中也没文件。网上查阅是Myeclipse没有编译成功。我将项目下的库文件 JRE System Library [jdk1.5]remove 重新加载了一下

Svn提示*号。重新clean一下项目。编译成功。

本机JDK的版本和SVN上的版本不一样造成无法编译。这是要把原有的JRE System Library remove掉换成自己的

还有就是svncheck out是把工程文件也导了出来。在项目中有个。Classpath文件。原来svn上的项目名称是whetc-mcs,后来改成了whetc-mvs。但是。Classpath文件中的配置仍然是whetc-mcs造成无法编译。(svn上依然是whetc-mcs,但导出后就变成了whetc-mvs,不知道svn项目的改名是怎么个情况。)

以下是在网上搜到的其他可能的情况。

找到原因了,
MyEclipse无法自动编译造成的。解决方法如下:
MyEclipse
保存后不能自动编译收藏

今天,碰到个怪事,在myeclipse中新建一个项目之后,结果保存之后,再查看WEB-INF/classes/,竟然里面是空的,而output路径也设的好好的啊,怪了,于是google了一下,发现有此问题的人还不少,其中有一位总结的比较详细,具体如下:

1.
确保 project->build automatically 已经被选上.

2.
如果选上了,也不好使, 使用这一招: project->clean..->选第2clean select project, 勾上
start build immediatelly

3.
删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了


4.
如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.

5.
想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如Total Commander。此时编译也不会通过,在problems下可能会提示“con''t delete classes ……”。关掉其它程序重新编译即可。


6.
还有种情况是remove JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚。

7.
build path中所有包都remove掉。然后又add jars,add libraries把需要的加进去,居然又开始编译了。。。

8.project->properties->java build path->source->.../WEB-INF/src
output folder不要默认,编辑让它指向../WEB-INF/classes 然后重新点击build工程即可自动编译。

9.
再就是最重要的要看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了

以上9条转自(http://www.diybl.com/course/4_webprogram/jsp/jsp_js/20090304/157796.html)

虽然总结的很好,然而我试过之后,发现还是不能解决我的问题,最后才发现原来是系统时间的问题,把时间调整过来就ok了。。。


MyEclipse
无法自动编译的解决方法
关键字: myeclipse无法自动编译的解决方法

今天通过SVN版本控制工具从服务器上更新了项目,选择的全部更新,因为开发工具都是用的MyEclipse,所以将一些MyEclipse的配置文件也从服务器上下了下来,覆盖了本地的配置文件。导致无法自动编译,MyEclipse不识别该项目,删除重新导入项目依旧无效。弄了半天头都大了!最后由我的老大解决了!

问题总结:

1.
重新导入的项目结构与原来的不同

src
包等等都和原来的不同,打开项目主目录,中有个.classpath文件,用记事本打开会发现有一行<classpathentry kind="src" path="src"/>,估计它的意思就是说你的源文件位置,看看有没有这一行,没有一定要补上,下面就是一些jar包的导入路径,如:

//
这两行也应该是MyEclipse自动生成的,JAVA运行环境 /J2EE1.4

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER"/>

//
导入的JAR包位置

<classpathentry kind="lib" path="web/WEB-INF/lib/acegi-security-1.0.0-RC1.jar"/>

2.
刷新项目不自动编译,将WEB-INF下面的classes文件夹中的字节码文件删除后不再重新生成

遇到此问题要检查是否有这一行

<classpathentry kind="output" path="web/WEB-INF/classes"/>

这是指定将字节码文件输出到哪,如果没指定当然不会默认给你找个地方存了。

3.
以上两个步骤都做完了,但项目依旧跑不起来

这个时候你要用到MyEclipse的项目清理功能,在菜单栏里的project里有个clean,它会强制清除那些配置文件,重新生成就会正确了。

项目跑起来了,要记得做个笔记,以后遇到问题了有个参照!可能解释的并不正确,但问题确实解决了!

关于MyEclipse不能自动编译

2009-06-19 16:27

方法一

有时候在MyEclipse里修改了内容,但它却没有自动编译,导致修改后没有达到我们想要结果。

既然是默认是自动编译,它没有被编译,那就手动编译。

方法如下:

MyEclipse的工具栏,找到Project---->把默认打勾的Build Automatically(自动编译,说明MyEclipse默认是自动编译的),把它的勾去掉,再找到Project---->Build All,手动编译完再把Build Automatically的勾打上。让它再默认自动编译!

方法二:

如果是tomcat服务器。把work下目录删除。清除缓存,把项目删除重新导入,重新编译

希望对遇到类似问题者有帮助!!

JavaScript 时间比较

//startdateenddate的格式为:yyyy-MM-ddhh:mm:ss

//date1date2之前时,返回1;date1date2之后时,返回-1;相等时,返回0

functiondatecompare(date1,date2){

varstrdt1=date1.replace("-","/");

varstrdt2=date2.replace("-","/");

vard1=newDate(Date.parse(strdt1));

vard2=newDate(Date.parse(strdt2));

if(d1<d2){

return1;

}elseif(d1>d2){

return-1;

}else{

return0;

}

}

//将当前时间格式化为:yyyy-MM-ddhh:mm:ss

functionformatCurrDate(){

varobjDate=newDate();//创建一个日期对象表示当前时间

varyear=objDate.getFullYear();//四位数字年

varmonth=objDate.getMonth()+1;//getMonth()返回的月份是从0开始的,还要加1

vardate=objDate.getDate();

varhours=objDate.getHours();

varminutes=objDate.getMinutes();

varseconds=objDate.getSeconds();

returnyear+"-"+month+"-"+date+""+hours+":"+minutes+":"+seconds;

}

批处理

ps = connection.prepareStatement(sb.toString());

Iterator<PeopleCheck> peopleCheckIterator = peopleCheckList.iterator();

while(peopleCheckIterator.hasNext()){

PeopleCheck peopleCheck = peopleCheckIterator.next();

ps.setString(1, fhczy);

ps.setString(2, peopleCheck.getZh());

ps.setString(3, peopleCheck.getDmh());

ps.setString(4, peopleCheck.getCdh());

ps.setTimestamp(5, peopleCheck.getZpjyzjssj());

ps.addBatch();

}

ps.executeBatch();

ps.clearBatch();

当一个action同时收到多个请求时,所有的请求都是共享一个action实例
使用全局变量会导致线程安全问题。所以在Action中都是使用的局部变量

监听浏览器是否关闭

window.onbeforeunload = function() //author: meizz

{

var n = window.event.screenX - window.screenLeft;

var b = n > document.documentElement.scrollWidth-20;

if(b && window.event.clientY < 0 || window.event.altKey){

alert("是关闭而非刷新");

window.event.returnValue = ""; //这里可以放置你想做的操作代码

}else{

alert("是刷新而非关闭");

}

}

编码转换

String cphdm = new String(obu.getCph().getBytes("ISO-8859-1"),

"GBK");

你可能感兴趣的:(学习笔记)