1.在使用struts时,页面中用的是form表单提交时,比如<input type="text" name="jjj"/>,那么提交时,action中得到的只是string类型,比如用的时间标签<s:date name="shareTime" format="yyyy-MM-dd HH:mm:ss" />,按道理action中拿到的应该是date类型,但是拿到的是string类型,一种方法把string 转成date型,一种是name中写成
contactShare.shareTime,因为对象contactShare中的shareTime是date型。
2.在用form表单提交时,如果写成<form method="post" action="..">,那么在action中表单数据都能拿到,但如果页面中有比较复杂的数据,比如一个list或者数组的话,页面就不能拿到,那时要写成如下这样<form method="post" id="contactForm" enctype="multipart/form-data">,action中就能拿到。
3.在写js时,由于经常要在js中动态在页面中加入元素,例如:
str+="<div>"+data.email+"<span style='width:15%;height:18.5px;font-size:90%;display: inline-block;text-align: center;color:#8C8C8C'><a οnclick=\"CenterWindow('contactHistoryRecord!findContact.action?customerID="+data.customerID+"','1024','768','resizable=yes,scrollbars=yes');\" href='#'>"+"+("+count+")"+"</a></span></div>";
由于双引号中只能用单引号,而如果加入的那段代码中,单引号很多,往往会搞混,解释器解释时也会乱掉,所以要用\"来转义这是个双引号,例如上面这句中οnclick=\"CenterWindow('contactHistoryRecord!findContact.action?customerID="+data.customerID+"','1024','768','resizable=yes,scrollbars=yes');\"
4.jquery中遍历方法each()两种用法(each() 方法规定为每个匹配元素规定运行的函数):一。
$.each($(":checkbox:checked"),function(){
if($(this).val().length==36)
{
cusID=cusID+$(this).val()+"#";
}
});为每个选中的复选框进行求和运算.
二。 $("li").each(function(){
alert($(this).text())
});弹出每个列表项的值。或者例如:
//将文档的所有元数据拼接成metadataJson字符串
var metadataJson = "{";
$(".metadataTr").each(function(){
//alert($(this).find(".matadataKey").attr("value"));
metadataJson += "\""+$(this).find(".matadataKey").attr("value")+"\":"+
"\""+$(this).find(".matadataValue").attr("value")+"\",";
});
在用ajax提交的方式中,也经常用到each(),对返回的list对象进行遍历,如下:
var content="";
$.ajax(
{
type:'post',
dataType:'json',
url:"contactGroup!listGroup.action",
success: function(data){
$.each(data, function(number,value) {
var num=(number+1)%3;
if(num==0)
{
content=content+"<span><input type='checkbox' class='cusCheckBox' name='contactGroupIDs' value='"+
value.contactGroupID+"'/>"+value.groupName+"</span><br />";
}else{
content=content+"<span><input type='checkbox' class='cusCheckBox' name='contactGroupIDs' value='"+
value.contactGroupID+"'/>"+value.groupName+"</span> ";
}
});
$("#belongTo").append(content);
}
}
)其中number是每条记录的顺序,从零开始
5.js中如何获得一个页面元素的位置,如下:
var subSpan = document.getElementById("subSpan");
var subCheckbox = document.getElementById("subCheckbox")
var left = subSpan.offsetLeft+subSpan.offsetWidth+subCheckbox.offsetWidth+10;
var top = subSpan.offsetTop;
对应的页面元素是如下:<span id="subSpan"> <b><s:text name="enpdoc.subscribe"/></b> </span><input type="checkbox" id="subCheckbox" name=""/>
offsetLeft是元素到页面左端的距离,offsetWidth是页面元素的长度,offsetTop是离页面顶端的距离,我在项目中通过这个方法获得一个元素的页面位置,然后将隐藏的一个div元素显示在那个元素的周围。
6.在用html中的列表元素时<ul><li>时,加上style="list-style-type:none;"可将原点去掉。
7当页面中的一个元素没有更改position属性时,在js中是不能改变它的位置的,必须写成:position:absolute;