您的位置:首页 > 编程语言 > Java开发

JAVA 随笔(一)

2015-11-30 11:13 351 查看
1.1 如何更改 messager.confirm 弹出框按钮的文字,而不改变选择框界面的风格:

一般来说,messager.confirm的弹出框的按钮默认的是“确认“和”取消“,当然这里已经加中文包,默认本是,”ok“和”cancle“.

很多情况下,我们直接用 $.messager.defaults= {ok: "通过", cancel: "不通过"}; 这样直接修改的话,弹出选择框的风格直接改变,我们采用

$.extend($.messager.defaults,{
ok:"通过",
cancel:"不通过"
});

就有效解决了选择框的风格保持不变而且文字有效替换问题。

1.2 如何js中怎么判断var是否包含另一个字符串:

我们在实际中,经常在界面里用到判断语句,比如我们这里做一个批量的删除,但是对消息删除时要做一个判断,不能删除状态为“已发布,已审核待发布,撤网待审核,撤网不通过” ps:status为each遍历取得页面上的状态(STATUS)

var status = ''
$.each(checked, function(index, item){
status = status + item.STATUS + ',';
});

if ( !(status.indexOf('已发布') > -1 ) && !(status.indexOf('已审核待发布') > -1) && !(status.indexOf('撤网待审核') > -1) && !(status.indexOf('撤网不通过') > -1) ){

删除代码

}



1.3 如任在js中只显示数据库字段里的前七个字符,而鼠标悬停显示所有的内容。

{field:'NOTICE_DESC',width:110,align:'left',halign:'center',title:'描述' ,formatter:function(value,row,index){
var len = row.NOTICE_DESC.length;
var abValue = row.NOTICE_DESC;
if (len > 8) {
abValue = row.NOTICE_DESC.substr(1,7) + "...";
}
return '<text href="#" title="' + row.NOTICE_DESC + '" class="note">' + abValue + '</text>';
} },
{field:'UPDATE_USER',width:100,align:'left',halign:'center',title:'维护人'},
{field:'UPDATE_TIME',width:110,align:'center',halign:'center',title:'维护时间'}
]]
});

这样我们就有效的对 描述字段 成功处理。

1.4 如何实现在判断字符串长度的时候,英文字符+1,汉字+2

// 计算标题和描述 字符串长度(英文占1个字符,中文汉字占2个字符)

businesstype和description为key值
var len_businesstype = 0;
for (var i = 0; i < businesstype.length; i++) {
var c = businesstype.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len_businesstype++;
}
else {
len_businesstype += 2;
}
}
if (len_businesstype > 16){
alert("录入的通知公告类型名称不能超过8个汉字,请重新录入 ");
return;
}
var len_description = 0;
for (var i = 0; i < description.length; i++) {
var c = description.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len_description++;
}
else {
len_description += 2;
}
}
if (len_description > 60){
alert("录入的描述信息不能超过30个汉字 ,请重新录入 ");
return;
}

1.5 有时候 我们在新增标题,或者新增用户的时候,要判断是否唯一,通常情况下我们将,数据库的字段设为唯一标示,然后捕获异常给用户一个合理的提示,不然会提示“系统错误”,但是如果标题或者用户名(要判断的值)比较少的时候,我们也可以在新增保存前,去数据库里扫一下,如果已存在,提示“已存在”,如果未存在,执行保存方法!

// 通知公告 新增
public int saveManage(Map<String, String> param) throws BusinessException {
if(checkExi(param.get("NOTICE_TITLE"))!=0){
throw new BusinessException("此标题已存在!");
}
return update("com.resoft.infodisc.central.informationmaintenance.mappings.noticeManagementFaDao.saveManage", param);
}
// 通知公告 标题 新增 唯一校验
public int checkExi(String NOTICE_TITLE){
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("NOTICE_TITLE", NOTICE_TITLE);
return checkExist("com.resoft.infodisc.central.informationmaintenance.mappings.noticeManagementFaDao.checkExi",paramMap);
}

然后在Dao层XML里面给checkExi 写一个 按照标题的查询 即可

1.6 在使用 easyui-combobox 时,经常下拉菜单的内容并不是在页面上写死的 而是要从数据库中某类别字段中取出,那么如何实现呢?

<td style="padding-left:10px">公告类型:<select name="R2" id="R2" class="easyui-combobox" style="width:200px"
data-options="editable:false, url:'${ctx}/central/informationmaintenance/notice/getManage?type=root',method:'post',valueField:'code',textField:'name', icons:[{
iconCls:'icon-clear',
handler:function(e){
$(e.data.target).combobox('clear');
}
}]">
</select>
</td>

然后在控制层给getManage一个方法,在service 层返回值为list,XML里写个查询即可

1.7 数据库里新增判断,有时候,我们做一个审核按钮,要更新数据库里的字段,比如字段为“0”则更新为为“1” ,如果字段为"4"则更新为“6”,我们可以在xml里直接给update语句用case和when,长知识了原来新增也能用case,不只是查询哦。

<!--通知公告 复核 -->
<update id="checkNotice" parameterType="java.util.Map">
UPDATE T_ANNOUNCE_NOTICE_INFO
SET STATUS = (
case STATUS
when '0' then '1'
when '4' then '6'
end )
WHERE NOTICE_ID = #{id} and ( STATUS = '0' or STATUS = '4')
</update>

1.8 打开一个页面的时候,有时需要直接将数据加载到页面上,将数据加载到页面的方法很多,最简单就是直接用ready方法,然后一个查询语句查一下,再把值传给界面。

//数据加载
//var html = '<table id="informationAddDataGrid"></table>';
$(document).ready(function(){
var row = $('#announcementNoticeListDataGrid').datagrid('getSelected');
var param = {NOTICE_ID : row.NOTICE_ID};
//alert(param.NOTICE_ID);
$.post("${ctx}/client/announcementManagement/loadNotice",param,function(data){
$('#form').form('load',data);
$('#pDate').html(data.PUBLISH_DATE);
$('#pTitle').html(data.NOTICE_TITLE);
//alert(data.NOTICE_CONTENT);
//document.getElementById("type").innerHTML = data.NOTICE_CONTENT;
},"json");
});

这里给控制层的方法名是“loadNotice”,根据id一个字段取值,可以考虑不用封装,直接传值,但是如果后续需要,再给map拼值得时候,封装还是比较方便的,所以,最好不管从界面取多少字段,都封装然后在传值(如果实在没必要,可以不封装),这里用load方法,自动加载数据,但是记得name的名字和数据库的子弹要对应!,pDate'和pTitle'是直接给的P标签,不用考虑html文本的样式,而CONTENT字段存的是html文本,不能直接加载,比如,在界面上,存的空格和换行一类的是以html的格式存进数据库的,取得时候取得也是html文本,这样在直接显示的时候往往会丢失空格和换行等,可以考虑用ckediter,我用的是直接加textbox,然后给改一下背景颜色。

如何给map拼接 比如 从数据库查出来的类别有 “男”和“女”,但是往往页面上需要一个“全部”,而“全部”不能存在数据库里,而且在查询的时候还要取得“全部”的 key值,将在下节中描述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: