2012年3.13-4.12总结

   从那天在实验室老胡看到我没事被叫来看看就这么来实习了。话说我还想说在学校玩玩,或者去昊哥那里。可是我缺钱,有不好

说要多点钱。就一直拖着。昊哥还给找了恒星那边,可是自己基础不牢还怯。烦躁!

现在已近来公司块一个月了。因为项目于交接之类的问题,现在闲的蛋疼,总结下最近的问题。

关于SSH框架。会用不了解详细的说,想说看书就是玩。唉,我现在删了手机里的小说吧。删了4本了。。。这个框架慢慢熟悉了

解里面的一些个详细情况把。

关于在myeclipse里用SVN的插件最近也熟悉了点。不过还是想抽空找昊哥之类的大牛问问具体冲突咋个弄,不过应该也是合并了

提交吧。

在MyEclipse里面注释的模板修改:windows --> preferences --> java --> Code Style --> Code Templates 可以导入导出&修改。


项目具体:

最近是做一个流程管理的模块。主要是进行流程的设定。

项目问题&关键代码:

1.ztree的相关。

相关demo和api之类的已经传到资源里面去了(3分而已..都没人下)。要生成一个树主要的步骤就是:(1)先进行相

关的设定比如回调函数、是否异步加载。(2)再写一个树的各个节点的数据。(3)进行树的初始化

code:

		
		var setting = {
  			async:{
  				enable: false
  			},data: {
				key: {
					//title:"t"
				},
				simpleData: {
					enable:true,
					idKey: "id",
					pIdKey: "pId",
					rootPId: ""
				}
			},callback: {
				onClick: TreeNodeOnClick
			}
		};

		//创建树
		var zNodes =[
			<%for (int i = 0; i < treeNodeList.size(); i++) {
				if (i > 0) {
					out.print(",");
				}%>
			{id:<%=treeNodeList.get(i).getId()%>,pId:<%=treeNodeList.get(i).getpId()%>,
				name:'<%=treeNodeList.get(i).getName()%>',dbId:<%=treeNodeList.get(i).getDbId()%>,
				open:<%=treeNodeList.get(i).isOpen()%>,isParent:<%=treeNodeList.get(i).getIsParent()%>,
				typeId:<%=treeNodeList.get(i).getTypeId()%>
			}
			<%}%>		
		];

			
		$(document).ready(function(){
			//加载树状结构
			$.fn.zTree.init($("#tree"), setting, zNodes);
		});


		//点击treeNode的回调函数
		function TreeNodeOnClick(vent, treeId, treeNode, clickFlag){
			typeId = treeNode.id;
			getProcessInfo();
		}


2.checkBox多选

code:

                 checkBox 全选多选的js代码

		function checkboxSelect(checkBox,name){
			if(checkBox.checked){
				$("input[name='check']").each(function(){this.checked=true;});
			}else{
				$("input[name='check']").each(function(){this.checked=false;});
			} 
		}

页面控件的html,其他的checkBox的name是上面的check就好了。

<input type="checkbox" οnclick='checkboxSelect(this,this.name)' name="checkAll" value="-1">

ps:这个$ each的循环比较好用,跳出循环是 return false;

3.js的确定删除的对话框

code:

		if(confirm("确定删除选中的项目?")) {
      			 TODO();
		}

4.jquer的异步提交

这个postUrl是拼出来的提交的url,带有提交时需要的参数信息。eg: postUrl = xxx!xxx.action?A=a&B=b。为了使每次的url都不一样要加个Math.random()

code:

				postUrl += "random="+Math.random();
				$.ajax({ 
					   url : postUrl, 
					   type : "post",  
					   success : function(data){
						try{
							if(data == '<%=DataStaticConstants.SUCCESS_MESSAGE%>'){
								getProcessInfo();
								alert('操作成功!');
							}else{
								alert('操作失败!');
							}
						}catch(e){alert(e.message);}
					   } 
				}); 
后台的数据变成json通过异步传到jsp。后台的code:  JSONArray.fromObject(list).toString(); list是需要转化的list。以下的

代码主要是通过后台的json数据在前台生成一个table。data就是返回的数据。

						var dataObj=eval("("+data+")");
						$("#listTable tr:not(:first)").remove();
						if(dataObj.length>0){
							$.each(dataObj,function(index,content){
								var trStr = '<tr orderNo="'+content.orderNo+'" id="'+content.colId+'" οnmοusemοve="this.className=\'list-tr\';" οnmοuseοut="this.className=this.rowIndex%2==1?\'list-tr2\':\'list-tr1\'"';
								//表格每行颜色不同
								if(index%2==0){
									trStr += ' class="list-tr2">';
								}
								else {
									trStr += ' class="list-tr1">';
								}
								trStr += '<td align="center"><input type="checkbox" name="check" id="'+content.colId+'Box"/>';
								trStr += '<input type="hidden" id="'+content.colId+'Hidden" value="'+content.isSys+'"></td>';
								trStr += '<td align="center">'+index+'</td>';
								trStr += '<td align="center">'+content.colCName+'</td>';
								trStr += '<td align="center">'+content.colType+'</td>';
								trStr += '<td align="center">'+content.colWidth+'</td>';
								trStr += '<td align="center">'+content.isPrimary+'</td>';
								trStr += '<td align="center">'+content.colMultMode+'</td>';
								trStr += '<td align="center">'+content.isView+'</td>';
								trStr += '<td align="center">'+content.colDec+'</td>';
								trStr += '<td align="center">'+content.isNull+'</td>';
								//是否是系统的,操作区显示与否
								//~!~~下面的'!='是测试~~正常是'==' 
								if(content.isSys == 1) {
									trStr += '<td align="center"></td></tr>';
								}
								else {
									trStr += '<td align="center">';
									trStr += '<a href="javascript:void(0);" οnclick="editTr('+content.colId+','+content.dbId+')">修改</a>  ';
									trStr += '<a href="javascript:void(0);" οnclick="deleteTr('+content.colId+',\''+content.colCName+'\')">删除</a>';
									trStr += '</td></tr>';
								}
								$('#listTable').append(trStr);
	   				 		});	
						}
				        $("#loadingDiv").hide();
	   					$("#tableDiv").show();

5.struts2的循环tag(感谢胖子

code:

<s:iterator value="showList" id="user" status="userIndex">
	<s:if test="#userIndex.index%2 == 0">
		<tr id='<s:property value="%{#user.colId}"/>' class="list-tr2" οnmοusemοve="this.className='list-tr';" οnmοuseοut="this.className='list-tr2'">
	</s:if>
	<s:else>
		<tr id='<s:property value="%{#user.colId}"/>' class="list-tr1" οnmοusemοve="this.className='list-tr';" οnmοuseοut="this.className='list-tr1'">
	</s:else>
	<td align="center">
		<s:if test="#userIndex.index%2 == 0">
			<input type="checkbox" name="check" id='<s:property value="%{#user.colId}"/>Box' onClick='changeBox("<s:property value="%{#user.colId}"/>","2");'/>
		</s:if>
		<s:else>
			<input type="checkbox" name="check" id='<s:property value="%{#user.colId}"/>Box' onClick='changeBox("<s:property value="%{#user.colId}"/>","1");'/>
		</s:else>
	</td>
	<td style="padding-left:13px;">
		<s:property value="%{#user.colCName}"/>
		<s:hidden id="%{#user.colId}name" value="%{#user.colCName}" ></s:hidden>
	</td>
	<td align="center" >
		<input id='<s:property value="%{#user.colId}"/>Width' style= "text-align:right;" name="input" value='<s:property value="%{#user.showWidth}"/>' />px
	</td>
    </tr>
</s:iterator>

6.js通过checkBox移动tr

code:

 	function cleanWhitespace(element) {
		 //遍历element的子结点
		 for (var i = 0; i < element.childNodes.length; i++) {
		  var node = element.childNodes[i];
		  //判断是否是空白文本结点,如果是,则删除该结点
		  if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) 
		  node.parentNode.removeChild(node);
		 }
	 }
	 var _table=document.getElementById("listTable");
	 cleanWhitespace(_table);
	 //获取选中的tr
	 function selectTr(){
		 var flag = 0;
		 var tr;
		 $("input[name='check']").each(function(){
				//是否选中
				if(this.checked==true) {
					if(flag == 1){
						flag = 2;
						return false;
					}
					else{
						tr = this.parentNode.parentNode;
						flag = 1;
					}
				}
		 });
		 if(flag == 0){
			 alert("请选择一个进行移动!");
			 return 0;
		 }
		 if(flag == 1){
			 return tr;
		 }
		 if(flag == 2){
			 alert("只可以选择一个进行移动");
			 return 0;
		 }
	 }
	 //上移
	 function trUp() {
		 if(selectTr()){
			 var _row = selectTr();
			//如果不是第一行,则与上一行交换顺序  
			 if(_row.previousSibling.previousSibling){
				 swapNode(_row,_row.previousSibling); 
			 }else {
				 alert("不能再向上移动了!");
				 return false;
			 }
		 }else {
			 return false;
		 }
	 }
	 //下移
	 function trDown() {
		 if(selectTr()){
			 var _row = selectTr();
			//如果不是第一行,则与上一行交换顺序  
			 if(_row.nextSibling){
				 swapNode(_row,_row.nextSibling); 
			 }else {
				 alert("不能再向下移动了!");
				 return false;
			 }
		 }else {
			 return false;
		 }
	 }
	//定义通用的函数交换两个结点的位置  
	 function swapNode(node1,node2){
		 //获取父结点
		 var _parent=node1.parentNode;
		 //获取两个结点的相对位置
		 var _t1=node1.nextSibling;
		 var _t2=node2.nextSibling;
		 //将node2插入到原来node1的位置
		 if(_t1)_parent.insertBefore(node2,_t1);
		 else _parent.appendChild(node2);
		 //将node1插入到原来node2的位置
		 if(_t2)_parent.insertBefore(node1,_t2);
		 else _parent.appendChild(node1);
	 }  
7.杂&注意

js提交action

	function reFresh() {
		 document.forms['queryForm'].action = "flowcharSet!setProcessFieldShowInit.action";
		 document.forms['queryForm'].submit(); 
	 }
关于ajaxSubmit提交

8.SSH里的Dao层

hibernate说是面向对象的编程思想。贴一段查询的代码

		Criteria criteria = this.getSession().createCriteria(Column.class);
		criteria.add(Restrictions.eq("dbId", dbId));
		criteria.add(Restrictions.isNotNull("showOrderNo"));
		criteria.addOrder(Order.asc("showOrderNo"));
		if(!criteria.list().isEmpty()){
			List<Column> list = criteria.list();
			return list;
		} else{
			return null;
		}
关于hibernate不了解。开始觉得这个东西很挫。现在还是.......

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值