1、在freemark中,有如下代码:
<td><select name="secondClassId"> <option value="">---请选择---</option> </select> </td>
如果在java端接收数据的属性的类型为Integer时,此时接收到的值是
null
这个很方便面
2.一个难以理解的问题
function beginDTFocus(obj){ if(obj.value==""){ showMsg_OnFocus(document.getElementById("dbeginDT"),"请输入正确的时间格式,例如:20040208"); //$("#dbeginDT").focus(); obj.focus(); return ; } var e = obj.value.match(/^[0-9]{8}$/); alert(e); if(e==null){ alert("aa"); showMsg_OnError(document.getElementById("dbeginDT"),"您输入的日期有误"); //$("#dbeginDT").focus(); obj.focus(); return ; } }
如果把注释的那部分打开的话,在firefox里就会报too much recursion错误,不知道原因
2009-03-25
1、关于Ibatis的Integer
在Ibatis中把number转换为Integer时,是new一个Integer对象,这时候就不能用==来比较这两个值了,这里顺便说一下Integer,直接上代码了:
Integer a=12;
Integer b=12;
if(a==b){
System.out.println("这时候a和b是相等的")
}
Integer a=new Integer(12);
Integer b=new Integer(12);
if(a==b){
System.out.println("这时候不相等")
}
原因很简单,就是第二种是创建了两个对象,这时候的==比较是对两个对象的地址比较,当然不相等了
2、ajax调用webwork的action方法
ajax用jquery的$.get、$.post等方法
ajax端的代码如下:
function spreadCheck(obj){ //这是webwork的action方法,在配置文件中配置 var url="${req.contextPath}/dproduct/spreadProd.action"; var pids=""; $('input[name="prodspread"][checked]').each(function(){ //alert(this.value); pids+=this.value+","; }); pids = pids.substring(0,pids.length-1); //ajax验证 $.post(url,{ ids:pids },function(data){ alert(data); if(data=="my"){ alert("你选择的产品中有属于你自己的,不可以进行推广") return false; } }); }
服务器端的代码:
if(m.getUserid()!=null&&m.getUserid().intValue()==user.getUserid().intValue()){ PrintWriter out = getResponse().getWriter(); out.print("my"); return NONE; }
注意不要加
getResponse().setHeader("Pragma", "No-cache");
getResponse().setHeader("Cache-Control", "no-cache");
getResponse().setDateHeader("Expires", 0);
getResponse().setContentType("text/html; charset=utf-8");
这样的代码,不然会返回整个页面的值,而不是
out.print("my");
放进去的字符串
2009-03-26
1、在jQuery,我们通过各种选择符和方法得到的结果集合,实际上都是一个jQuery对象
2、在ftl页面中
<a href="http://www.sina.com" target="_blank" >
如果前面没有http://的话,系统会自动给个这路径加上绝对路径:
http://localhost:8080/upcenter3/message/
2009-03-27
1、关于用webwork时通过get方式提交时中文乱码解决方法
首先尽量就不要用get的方法传数据,
如果实在用了的话,用如下方法转码:
(1)在freemarker中,用
<#setting url_escaping_charset='UTF-8'> //需要转码的参数后面加上?url productname=${model.productname?if_exists?url}
如果没有使用freemarker的话,那就直接用js的 encodeURI(obj.value)方法进行转码
(2)在java代码中:
String q = new String(model.getProductname().getBytes("ISO-8859-1"), "utf-8");
通过这种方式进行转码
http://www.iteye.com/topic/31742
2、得到当天日期的js函数
/** *得到当天日期值,格式为yyyymmdd */ function getcurDate(){ var d = new Date(); var s =""+d.getYear(); var m=(d.getMonth()+1); if(m<10){ m="0"+m; } s =s+m; s += d.getDate() ; return s; }