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" onclick='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+'" onmousemove="this.className=\'list-tr\';" onmouseout="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);" onclick="editTr('+content.colId+','+content.dbId+')">修改</a>  ';
									trStr += '<a href="javascript:void(0);" onclick="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" onmousemove="this.className='list-tr';" onmouseout="this.className='list-tr2'">
	</s:if>
	<s:else>
		<tr id='<s:property value="%{#user.colId}"/>' class="list-tr1" onmousemove="this.className='list-tr';" onmouseout="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不瞭解。開始覺得這個東西很挫。現在還是.......

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章