cms 日誌記錄

   本來沒怎麼想寫日誌的,因爲文筆不咋地,不過在做這個設計的時候,出現的問題確實比較多,今天決定還是記錄下吧,可能以後有同樣的錯誤的時候能記起來。

   先講下做這個設計的前期準備。我是看到國內有開源的jeecms ,也想練練手,起碼面試的時候能有得說做過該類型的項目。該cms 界面是放jeecms 的,但裏面的數據庫設計和構架都是由自己琢磨的。。可能是jeecms 這個開源項目我看的不是很懂,裏面的內容也確實多,功能也強大,我這個只能算是小小的case。

 

————————————————————————————————————————————————————

2009.5.28-2009.5.30

 

1、對 html 的Frame 框架有了進一步的認識,以前沒怎麼使用過,不大記得各個Frame 怎麼調用,剛好有同學在問了下,然後自己總結下,學到不少。

2、FreeMarker 的亂碼問題。在設計中發現,亂碼問題一般分爲兩種,一是頁面的編碼,二是發送數據的編碼。在FreeMarker 中都能體現出來。

3、對Service 層的設計,有點猶豫,到底是把service層設計成action 的主要功能的邏輯,還是更細分點,設計成功能模塊的一個小分點。最後選了第一種方案,設計成action 的每個功能的邏輯。

4、總結前期設計的錯誤,因爲在service 層控制事務,主要和事務密切相關的的增刪改功能,統一設計成add*、update*、delete*。方便Spring的事務控制。

5、對於異常的處理,也參照了以前的總結,在本人的blog上可以瞭解到。

————————————————————————————————————————————————————

2009.6.1  晴

 

1、OpenSessionInView 在ssh+FreeMarker 中的失效問題。原因是web.xml 的配置出錯了,自己沒注意到web.xml的實際的加載順序,然後自己總結了下,web.xml 的加載順序是:context-param -> listener -> filter -> servlet ,而同個類型之間的實際程序調用的時候的順序是根據對應的 mapping 的順序進行調用的。

在我的blog 上也對web.xml 做了詳細的解釋。網址爲:http://zhxing.iteye.com/admin/blogs/399668

解決辦法看了上面的加載順序後很簡單,只是把OpenSessionInView 的filter 的filter-mapping 放在了Struts2 的filter-mapping 的前面就可以了。

2、在struts2 的radio 和select 標籤中無法使用FreeMarker 的hash 值。試了很多次,還是無法解決,網上也很多人說這個是個struts2中的bug ,當然換個別的方法解決也行的。一可以直接用html 標籤,二是把值放到struts 值棧中,還有個解決的方法,不過感覺修改struts2的源碼畢竟有點不大好,在這個網上有人給出的方法:http://www.iteye.com/topic/281493

 

_______________________________________________________________________________

 

 2009.6.3  陰

 

1、父子節點中,數據庫的默認值問題。一直沒找到怎麼在Hibernate 中設置字段的默認值,找了找網上的解答,但沒用上,不過也記錄下。

2、ul、li 中的前面的圓點。可以用css 屬性去掉。例如:<li style="list-style-type:none;">內容</li>

3、遇到一些邏輯的問題。這跟之前的代碼構造有關,到底是選擇代碼冗餘,還是代碼清晰,當時構造時還沒怎麼認識到。

 

_______________________________________________________________________________

 

2009.6.10  晴

 

1、在二級聯動下拉框的構建中,發現javascript 的add(option) 和appendChild(option) 在ie 和火狐 中會有兩種不同的結果,都是其中一個用不了。解決方法是用了其他的生成方法,在本blog 中的二級聯動 的文章中有提到。

2、在開發中發現Struts2 用json 插件時,用transient 修飾符 失效了,個人覺得是個bug。

3、在FreeMarker 的日期顯示中,如果${article.firstdate} 輸出的的話,在添加完文章轉入頁面的時候竟然會報錯,這個有點奇怪,就只有增加個那個文章的時間不能顯示而報錯了。在後面增加了個${article.firstdate?string("yyyy-MM-dd HH:mm")} FreeMarker 的內置函數就不會出現問題了。。這個問題還沒搞明白怎麼回事。

4、在突然發現 OpenSessionInView 有時失效了,也弄了點時間,才發現,原來沒有加上 .action 後綴,所以沒被這個過濾器攔截了。 

_______________________________________________________________________________

 

2006.6.12 晴

 

1、對於多選框的默認值,還有下拉框的默認值在更新的時候要和實體的對應,這個當時確實有點麻煩。後來分析了下,用一個<#if>把默認值給包括了,如果if 裏面的值相等,則設爲已選。另外,在這裏也用到了FreeMarker 的內置函數,seq_contains 用來判斷當前值是否存在於數值或者序列中,關於FreeMarker的內置函數,確實很方便,以後也得繼續多瞭解下。

2、關於權限管理,由於以前的錯誤分析,搞得現在得重新設計下,根據現在的情況,把權限設爲url 的filter 或者攔截器來實現,可能會方便點,不過又有些麻煩,可能要改變一些方法的名稱來設置權限,這確實有點頭疼。正在尋找方法解決。

 

_______________________________________________________________________________

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