`
kuyuyingzi
  • 浏览: 54151 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

2014java基础笔记

 
阅读更多

String.split(".")为null问题

“.”是正则表达式里面的关键字,因此这里会出错。
解决方法:用StringTokenizer替换
java.util.StringTokenizer token = new java.util.StringTokenizer(String,".");
token.nextToken()

获取3位数字,前面补零

       int youNumber = 1;      
        // 0 代表前面补充0      
        // 3 代表长度为3      
        // d 代表参数为正数型      
        String str = String.format("%03d", youNumber);      
        System.out.println(str); // 0001  
<h2>数字格式化</h2><p>java.text.NumberFormat</p><p>示例:</p><p>NumberFormatNumFmt=NumberFormat.getInstance();</p><p>NumFmt.setMaximumFractionDigits(0);</p><p>NumFmt.setMinimumIntegerDigits(2);</p><p>System.<span style="color:rgb(0,0,192);">out</span>.println(NumFmt.format(80934.234));<span style="color:rgb(63,127,95);">//80,934</span></p>

将前台JSON对象发送给后台

页面js:

XControl.ruleGroup.rules = {
        id:4,
        officeId:"can911",
        airCode:"cx",
        channels:[{
            channel: 'User list',
        groupId: 4,
        rules: [
        {id: 1, channel: 'Anne'},
        {id: 2, channel: 'Amelie'}
    ]},{
        channel: 'User list',
        groupId: 4,
        rules: [
        {id: 1, channel: 'Anne'},
        {id: 2, channel: 'Amelie'}
    ]}]};

//将JSON数组格式化,这一步是必要的

var xControlVO = JSON.stringify(XControl.ruleGroup.rules);
 //特殊符号保存不了问题
 var result = "";
 for(var i=0;i<xControlVO.length;i++){
  if(xControlVO.charAt(i)=="+"){
   result += "%20";
  }else if(xControlVO.charAt(i)=="/"){
   result += "%2F";
  }else if(xControlVO.charAt(i)=="?"){
   result += "%3F";
  }else if(xControlVO.charAt(i)=="%"){
   result += "%25";
  }else if(xControlVO.charAt(i)=="#"){
   result += "%23";
  }else if(xControlVO.charAt(i)=="&"){
   result += "%26";
  }else{
   result += xControlVO.charAt(i);
  };
 } 
//发送post请求
$.post("/iControl/Control/xControl/saveOrUpdate.action", { xControlVO:xControlVO }, function (data) {  
            alert(data);  
        });  

后台:

利用jackson的ObjectMapper实现对象的转化

@Write(type = WriteType.JSON)
    @Action(value = "saveOrUpdate")
    public JSONObject saveOrUpdate(@Params(key="xControlVO") String xControlVO){
        try {
            ObjectMapper mapper = new ObjectMapper();  
            XControlVO vo = mapper.readValue(xControlVO,XControlVO.class);//转成map  
            xControlService.saveORupdate(vo);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

js判断值是不是undefined

if (typeof(reValue) == "undefined") {
alert("undefined");
}

js克隆数组和对象

/**
* 克隆数组
*/
Utils.cloneArray = function(arrayObj) {
var array = new Array();
for (var i = 0, l = arrayObj.length; i < l; i++) {
array.push(Utils.cloneObj(arrayObj[i]));
}
return array;
}

/**
* 克隆对象
*/
Utils.cloneObj = function (obj) {
var objClone = null;
if (obj.constructor == Object) {
objClone = new obj.constructor();
}else {
objClone = new obj.constructor(obj.valueOf());
}
for (var key in obj) {
if (objClone[key] != obj[key]) {
if (typeof (obj[key]) == 'object') {
if (obj[key] instanceof Array) {
objClone[key] = Utils.cloneArray(obj[key]);
}else{
objClone[key] = Utils.cloneObj(obj[key]);
}
}else {
objClone[key] = obj[key];
}
}
}
objClone.toString = obj.toString;
objClone.valueOf = obj.valueOf;
return objClone;
}


监听Ctrl键按下释放:

$("body").keydown(function (event1) {
try {
var key = event1.which;
if (key == 17) {
//todo
}
}catch(err){}
});
$("body").bind('keyup',function (event) {
try {
var key = event.which;
if (key == 17) {
//todo
}
}catch(err){}
});


1Oracle时间数据保存,后天看到只保存年月日,没有日分秒,因此排序的时候不能准确排序

解决:

1.1数据库将该字段格式改为TimeStamp类型

1.2@Temporal(TemporalType.TIMESTAMP)

@Column(name="LAST_MODIFIED_TIME",length=7)

publicDategetLastModifiedTime(){

returnthis.lastModifiedTime;

}

publicvoidsetLastModifiedTime(DatelastModifiedTime){

this.lastModifiedTime=lastModifiedTime;

}

2Stringkey=””; //拼接失败,此字符串为空或者空白不能拼接

for(Stringcity:citys){

key.concat(city);

}

for(Stringdate:dates){

key.concat(date);

}

key=key.concat(airCompany);

修改为:

StringBuffersbf=newStringBuffer();//拼接qte缓存的key

for(StringtempCity:citys){

sbf.append(tempCity);

}

for(StringtempDate:dates){

sbf.append(tempDate);

}

Stringkey=sbf.toString();

key=key.concat(airCompany);

3、查询结果大小

BigDecimalrowCount=(BigDecimal)query.uniqueResult();

returnrowCount.intValue();

代替:intsize=query.list().size();

returnsize;

3、存储过程操作

publicLongcopyAirline(LongairLineId){

Connectionconn=null;

CallableStatementcstmt=null;

try{

JdbcTemplatejdbcTemplate=this.getJdbcTemplate();

conn=jdbcTemplate.getDataSource().getConnection();

StringspName="{callsp_copy_policy_airline(?,?)}";

cstmt=conn.prepareCall(spName);

cstmt.setLong(1,airLineId);

cstmt.registerOutParameter(2,oracle.jdbc.OracleTypes.NUMBER);

cstmt.execute();

returncstmt.getLong(2);

}catch(Exceptione){

e.printStackTrace();

log.error(e,e);

}finally{

try{

if(conn!=null){

conn.close();

}

}catch(Exceptione){

e.printStackTrace();

}

}

returnnull;

}

存储SQL,复制存储过程思想,先将需要复制的数据copy到临时表,更新临时表的主键、外键及需要更新的信息,再将临时表数据插入原始表

createorreplace

proceduresp_copy_policy_airline(airlineidinnumber,newairlineidoutnumber)is

v_airlineidnumber;

Begin

v_airlineid:=SEQ_POLICY_AIRLINES.NEXTVAL;序列的下一个值

insertintoIFL_POLICY_AIRLINES_COPY(selectG.*,v_airlineidfromIFL_POLICY_AIRLINESGwhereG.POLICY_AIRLINE_ID=airlineid);

commit;

--更新各表外键

updateIFL_POLICY_AIR_PARTS_COPYCOPYHsetpolicy_airline_id=(selectnewIdfromIFL_POLICY_AIRLINES_COPYCOPYGwhereCOPYH.policy_airline_id=COPYG.policy_airline_idandrownum<=1);

--更新各表主键

updateIFL_POLICY_AIR_PARTS_COPYsetAIR_PART_ID=newId;

--将复制表中的信息插入到原始表

insertintoIFL_POLICY_AIRLINES(POLICY_AIRLINE_ID,AIRLINE_CODE,POLICY_ID,TAKEOFF_AIRPORTS,ARRIVE_AIRPORTS,FROM_IS_OJ,TO_IS_OJ,TIME_OFFSET,TCODE,

CLAUSE_ID,CLAUSE_CODE,ALLOW_STOPOVERS,STOPOVERS_TYPE,ALLOW_FLIGHT,NOT_ALLOW_FLIGHT,ALLOW_SHARE_FLIGHT,IS_MARRIAGE,GO_STOPOVERS_TIME,GO_STOPOVERS_FEES,

GO_STOPOVERS_FEES_UNIT,GO_FREE_STOPOVERS_TIME,BACK_STOPOVERS_TIME,BACK_STOPOVERS_FEES,BACK_STOPOVERS_FEES_UNIT,BACK_FREE_STOPOVERS_TIME,GO_ALLOW_TIME,

BACK_ALLOW_TIME,GO_NOT_ALLOW_TIME,BACK_NOT_ALLOW_TIME,TAKEOFF_AREA_TYPE,ARRIVE_AREA_TYPE,START_POINT_CODE,FINISH_POINT_CODE,AIRLINETYPE)

selectPOLICY_AIRLINE_ID,AIRLINE_CODE,POLICY_ID,TAKEOFF_AIRPORTS,ARRIVE_AIRPORTS,FROM_IS_OJ,TO_IS_OJ,TIME_OFFSET,TCODE,CLAUSE_ID,CLAUSE_CODE,

ALLOW_STOPOVERS,STOPOVERS_TYPE,ALLOW_FLIGHT,NOT_ALLOW_FLIGHT,ALLOW_SHARE_FLIGHT,IS_MARRIAGE,GO_STOPOVERS_TIME,GO_STOPOVERS_FEES,GO_STOPOVERS_FEES_UNIT,

GO_FREE_STOPOVERS_TIME,BACK_STOPOVERS_TIME,BACK_STOPOVERS_FEES,BACK_STOPOVERS_FEES_UNIT,BACK_FREE_STOPOVERS_TIME,GO_ALLOW_TIME,BACK_ALLOW_TIME,

GO_NOT_ALLOW_TIME,BACK_NOT_ALLOW_TIME,TAKEOFF_AREA_TYPE,ARRIVE_AREA_TYPE,START_POINT_CODE,FINISH_POINT_CODE,AIRLINETYPEfromIFL_POLICY_AIRLINES_COPY;

updateIFL_POLICY_FILESDsetLAST_MODIFIED_TIME=SYSDATE()whereD.policy_Id=(selectG.policy_IdfromIFL_POLICY_AIRLINESGwhereG.policy_airline_id=airlineid);

newairlineid:=v_airlineid;

commit;

DELETEFROMIFL_POLICY_AIRLINES_COPY;

commit;

end;

4Oracle正则表达式函数-REGEXP_REPLACE

需要替换掉数据库LIMITE_INFORMATION字段字符串中的owPriceSource的值

{"stayTime1":"","stayTime2":"","owPriceSource":"1520","rtPriceSource":"2600"}

updateIFL_POLICY_BUNKSsetLIMITE_INFORMATION=regexp_replace(LIMITE_INFORMATION,'"owPriceSource"\s*:\s*"([^\\"]|[\\]["]|([\\][\\]))*"','"owPriceSource":"1234"')wherePOLICY_BUNK_IDin(:POLICY_BUNK_ID_PARAM)

解决session超时操作有误问题,设置成返回登录页面

//302表示session超时,退回登陆页面
$.ajaxSetup({complete:function(xhr,textStatus){
if (xhr.status == 302) {
window.open(xhr.getResponseHeader("Location"));
}
}});

表单内容重复保存问题

<form id="priceId" method="post">
initEvent:function(){
$("#priceId").change(function() {
$("#priceId").data('changed', true);//from有修改,将状态设成true
});
}
if($("#priceId").data('changed')){

结束日期大于开始日期验证问题

endDate : {
validator : function(val, param) {
var startDate = $(param[0]).val();
var endDate = $(param[1]).val();
var reg = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/; //日期验证
if(reg.test(endDate)){
endDate = endDate.replace("-", "");
endDate = endDate.replace("-", "");
startDate = startDate.replace("-", "");
startDate = startDate.replace("-", "");
return parseInt(endDate) >= parseInt(startDate);
}else return false;
},
message : "格式不正确、结束日期应应>=开始日期"
},

复制页面不能弹出窗口

var newwindow=window.open("about:blank");//先打开一个空白页,在填充
$.getJSON("/iPolicy/policy/extrapart/saveCopyExtraPartById.action",{extraPartId:selectedId},function(data){
policyTable.reload();
selectedId = data.id;
var url = "edit.html?extraPartId=" + selectedId+"&title=f";
newwindow.location.href=url;
newwindow.focus();
return false;
});

防止表单重复提交,思想:提交的时候放入变量,成功的时候去除

success : function(data) {
$this.data("submiting",false);
if (options.onsuccess) {
options.onsuccess(data);
}
}
$this.submit(function() {
if($this.data("submiting")){
return false;
}

$this.data("submiting",true);
}

文本框或输入框细节,鼠标离开显示”审核通过“,点击消失

onFocus="if(this.value=='审核通过'){this.value=''}"

onBlur="if(this.value==''){this.value='审核通过''}"

列表字段过长,隐藏过长部分,鼠标经过显示全部

startAreaCode=startAreaCode.length>20?startAreaCode.substring(0,20)+"...":startAreaCode;
"<td title='"+titleEndAreaCode+"'>到达地:"+endAreaCode+"</td>"


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics