每天都会遇到很多有意思的技术点 如果单独开贴的话也写不了几句话。。。所以开个杂谈 记录点滴吧。。
1)如何在jsp页面中获得访问到工程的绝对路径
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <body> <base href="<%=basePath%>"></base><!--保证整个jsp的路径都是从工程开始 --> </body> </html
2)如何在action中获得工程在硬盘上的路径
服务器上TOMCAT里工程所在的路径
ServletActionContext.getServletContext().getRealPath("a");//这个方法会在路径上补加个/a
9.22
3)注意double在计算中的精度问题
比如要取得10.03*100 后的整数 有可能得到的就是1002.99999999
double l = 10.03; System.out.println(10.03*100);//输出的结果是1002.9999999999999
这样取整之后就是少1
9.26
4)[2013-09-26 10:36:56 WARN ]No configuration found for the specified action: 'lee/lee_up' in namespace: '/lee'. Form action defaulting to 'action' attribute's literal value.
项目跳转到某一页面之后 就会提示这个错误经过研究发现是由于struts.xml 和 页面中form传值的 namespace有冲突 页面的中form采用的是S标签
将namespace统一之后 提示就没有了 代码如下
struts.xml
<package name="lee" namespace="/lee" extends="struts-default">
页面中
<s:form action="lee/lee_up" method="post" enctype="multipart/form-data"> 异常 <s:form action="lee_up" method="post" enctype="multipart/form-data" namespace="/lee"> 正常
5)合并table单元格 修改 input长度
<td colspan=3>横向合并 rowspan竖向 <input type="text" style="width:99%" name="highTech.enName" />
6)通过javascript获得日期
1.<SCRIPT LANGUAGE="JavaScript"> var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数) myDate.getHours(); //获取当前小时数(0-23) myDate.getMinutes(); //获取当前分钟数(0-59) myDate.getSeconds(); //获取当前秒数(0-59) myDate.getMilliseconds(); //获取当前毫秒数(0-999) myDate.toLocaleDateString(); //获取当前日期 var mytime=myDate.toLocaleTimeString(); //获取当前时间 myDate.toLocaleString( ); //获取日期与时间 </SCRIPT>
7)document.getElementById("year");获取到的值总是null
<script type="text/javascript" > document.getElementById("year1"); </script> //这样在页面初始化之前取DOM,取到的值一定是null //修改方法 <script type="text/javascript" > window.onload = function(){ alert(document.getElementById("ww")); } </script>
8)如何隐藏和显示div
function hide(){ //隐藏 document.getElementById("test").style.display="none"; //块级元素显示 document.getElementById("test").style.display="block"; //行级元素显示 document.getElementById("test").style.display="inline"; }
9)IE不识别getElementsByClassName()的解决方法
重写改方法使其使用于各种浏览器(..感觉是各种而已方法是从网上找的)
document.getElementsByClassName = function(){ var tTagName ="*"; if(arguments.length > 1){ tTagName = arguments[1]; } if(arguments.length > 2){ var pObj = arguments[2] } else{ var pObj = document; } var objArr = pObj.getElementsByTagName(tTagName); var tRObj = new Array(); for(var i=0; i<objArr.length; i++){ if(objArr[i].className == arguments[0]){ tRObj.push(objArr[i]); } } return tRObj; } ;
10)function addrow() {
var tableName = document.getElementById("mytable");
var thChar = tableName.insertRow();
var td1 = thChar.insertCell();
var td2 = thChar.insertCell();
td2.innerHTML="<input type='text' name='projectEvaluation.reportType'/>";
td1.innerHTML="<input type='text' name='projectEvaluation.reportType' />";
}
function removenode(){
var temp=document.getElementById("mytable");
if(temp.rows.length>2){
temp.deleteRow(temp.rows.length-1);
document.getElementById("tike").innerHTML="";
}else{
document.getElementById("tike").innerHTML="已经是最少行数了!";
setTimeout(function(){
document.getElementById("tike").innerHTML="";
},1000);
}
}