風(fēng)人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評(píng)論 - 56, 引用 - 0
          數(shù)據(jù)加載中……

          ECApp -- 之系統(tǒng)初始化

          在java web項(xiàng)目中,最常用的就是使用listener來實(shí)現(xiàn)初始化了。

          下面是實(shí)現(xiàn)代碼
           1 public class StartupListener extends ContextLoaderListener implements
           2         ServletContextListener {
           3 
           4     private Logger logger = LoggerFactory.getLogger(getClass());
           5     
           6     /**
           7      * web容器啟動(dòng)時(shí)調(diào)用
           8      */
           9     public void contextInitialized(ServletContextEvent event) {
          10         logger.info("application servlet initialized");
          11 
          12         ServletContext context = event.getServletContext();
          13         
          14         //從spring中獲得bean,由這個(gè)bean進(jìn)行相應(yīng)操作,結(jié)果存到context中
          15         ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
          16         ProductClassManager productClassManager = (ProductClassManager)ctx.getBean("productClassManager");
          17         
          18         String prodClassTreeJson = productClassManager.generateProdClassTree();
          19         
          20         context.setAttribute(Constants.PRODUCT_CLASS_JSON_STRING, prodClassTreeJson);
          21     }
          22     
          23     
          24     /**
          25      * web容器銷毀時(shí)調(diào)用
          26      */
          27     public void contextDestroyed(ServletContextEvent event){
          28         logger.info("application servlet destroyed");
          29     }
          30 
          31 }
                  這里面還調(diào)用 了spring的bean,所以listener要配置在spring的那個(gè)listener下面,否則可能出錯(cuò)。

          這樣我們就可以在系統(tǒng)啟動(dòng)的時(shí)候?qū)⒁恍┏S玫臄?shù)據(jù)及配置信息都放到內(nèi)存(即serlvetContext里面),在struts2中,我們可以通過這種方式獲得
          ServletContext context = ServletActionContext.getServletContext();
          然后就可以使用存放在context里面的數(shù)據(jù)了。
          就這么簡(jiǎn)單。

          posted @ 2009-08-06 15:40 風(fēng)人園 閱讀(257) | 評(píng)論 (0)編輯 收藏

          ECApp--ext應(yīng)用之我見

                  以前做項(xiàng)目的時(shí)候也使用過一段時(shí)間的ext,但是總體來說,在使用的過程中有蠻多不習(xí)慣的地方,后來除了幾個(gè)布局界面使用ext之外,其他的全部又替換為html了。
                  這次項(xiàng)目,再次使用ext又有了新的感覺,總的來說,ext還是非常的好(這個(gè)是廢話)。css風(fēng)格是我比較喜歡的那種,非常的耐看,不會(huì)看厭。各種組件豐富,只要你能用的起來,還是非常好的,一個(gè)應(yīng)用下來,整體操作非常的爽。
                  有一個(gè)不爽的地方就是在編寫的時(shí)候 ,多一個(gè)少一個(gè)逗號(hào)就玩完,這個(gè)比較郁悶,但是注意一下就好了。
                  下面暫時(shí)show一下程序的主體頁面,只能說基本完成,還沒有完全弄好。
                  今天把頁面及tree給弄好,明天把中間的grid及相關(guān)的幾個(gè)編輯form弄完,在完善一下相應(yīng)的按鈕操作,就完工了,哈哈。拿出去給人看都是眼前一亮。good,繼續(xù)努力ing

          posted @ 2009-08-06 15:02 風(fēng)人園 閱讀(182) | 評(píng)論 (0)編輯 收藏

          ECApp--產(chǎn)品主數(shù)據(jù)管理界面及產(chǎn)品選擇方案構(gòu)思



          1、管理界面
                  對(duì)于一個(gè)ERP系統(tǒng)來講,產(chǎn)品數(shù)據(jù)是最重要的,而且也是操作比較頻繁的。所以界面一定要要友好。
          在c/s中,一般是這樣處理的,左邊樹形結(jié)構(gòu)顯示分類,右邊產(chǎn)品數(shù)據(jù),提供查詢定位功能。
          所以在這個(gè)系統(tǒng)里,我也想使用類似的界面,這樣直觀且方便。

                  在這個(gè)界面上,提供對(duì)產(chǎn)品類別 & 產(chǎn)品數(shù)據(jù)的操作。
                  在樹形結(jié)構(gòu)上操作產(chǎn)品類別,操作有:新增類型,新增子類型。
                  產(chǎn)品數(shù)據(jù):新增(需要先選擇類別)、刪除、修改、查找、定位等。

          2、產(chǎn)品選擇
                  在整個(gè)系統(tǒng)中,產(chǎn)品選擇使用是最為廣泛和頻繁的,所以一定要提供多種選擇操作,滿足用戶的操作需要,方便用戶產(chǎn)品需要的產(chǎn)品。
              1)、彈出式選擇對(duì)話框
              2)、下拉式(自動(dòng)匹配建議)
              3)、多選輸入(減少操作次數(shù),這個(gè)很重要)

          上面這些看能否用ext實(shí)現(xiàn)。
          本來想使用jquery.treeview來做,但是好像有點(diǎn)問題。看來只能用ext的東東來做tree了。
          那個(gè)自動(dòng)匹配的下拉菜單,估計(jì)要自己來手工打造了,已經(jīng)找到了類似的源代碼,自己做吧。
          哦:)

          posted @ 2009-08-05 15:22 風(fēng)人園 閱讀(283) | 評(píng)論 (0)編輯 收藏

          java中文注釋在eclipse中顯示亂碼的問題

          這個(gè)問題困擾已久,一直沒有空查,今天終于查了一下,呵呵,總算看見那個(gè)久違的漢字了,高興啊。

          原文請(qǐng)看這個(gè)論壇帖子 : http://www.javaeye.com/topic/100391

          解決方案:
          Preferences General > Workspace 修改Text file encoding
          為UTF-8后才行。這個(gè)問題一直琢磨了好久,今天下了決心想看看,最后還是查了eclipse的幫助才解決。

          當(dāng)當(dāng)修改project 為UTF-8是不行的。


          就這么回事,我一直改項(xiàng)目的那個(gè),怪不得。

          posted @ 2009-08-05 15:07 風(fēng)人園 閱讀(2435) | 評(píng)論 (0)編輯 收藏

          ECApp 項(xiàng)目說明

          在此記錄開過過程及問題處理,便于瀏覽查詢。
          ECApp是一個(gè)web版的進(jìn)銷存系統(tǒng)
          模塊有系統(tǒng)模塊,基礎(chǔ)模塊,采購管理,銷售管理,倉庫管理,應(yīng)收應(yīng)付等。

          在web版的基礎(chǔ)上,計(jì)劃再開發(fā)一個(gè)RCP版本的。web的主要用于查詢分析。RCP用于數(shù)據(jù)操作。

          這樣B/S,C/S的特點(diǎn)都能發(fā)揮出來。


          在公司工作也不是很累,有很多時(shí)間做開發(fā),給自己點(diǎn)事情做作,免得人都荒廢了。這樣人累點(diǎn),但是充實(shí),給人的精神感覺也好。讓人有個(gè)希望,有個(gè)目標(biāo)。

          現(xiàn)在在完成基礎(chǔ)模塊的東西,整體架構(gòu)

          Struts2 + spring + hibernate + ibatis

          數(shù)據(jù)庫任意,現(xiàn)為sql server 2005

          爭(zhēng)取以后改為ERP,有機(jī)會(huì)的話,可以拿出去賣賣,哈哈

          給自己一個(gè)目標(biāo),年底前完成,加油吧,兄弟。

          posted @ 2009-08-04 16:39 風(fēng)人園 閱讀(248) | 評(píng)論 (0)編輯 收藏

          struts2 表單屬性映射的問題

          最近使用的過程中,有點(diǎn)搞不懂,表單域跟屬性到底是怎么個(gè)關(guān)系,因?yàn)橛袝r(shí)候可以,有時(shí)候又不行。有點(diǎn)小郁悶。

          使用新東西的時(shí)候或多或少會(huì)出現(xiàn)這樣那樣的問題,這導(dǎo)致很多人不愿意更換原來的框架,一換又要學(xué)一個(gè)大堆東西,處理一大堆異常。但是我們這些做開發(fā)的,不學(xué)習(xí)使用新的 東西,就會(huì)被淘汰。這個(gè)行業(yè)的悲哀啊,當(dāng)初也不知道怎么選擇了這個(gè)行業(yè)。

          以上是題外話。

          表單映射,在2里面有兩種方式,一個(gè)事modelDriver,直接映射到model里面。
          另一種方式就是通過屬性來影射,通過getter和setter方法來獲取和設(shè)置值。

          現(xiàn)在出現(xiàn)問題的在第二種情況,設(shè)值后,傳到頁面,頁面沒有得到值,這個(gè)不知道什么緣故,感覺有可能是頁面轉(zhuǎn)發(fā)的問題。這個(gè)還要好好看看資料研究一下。

          :)

          //==========================================================================
          2009-11-17
          好久以前的問題了,今天終于有了答案,原來都是ValueStack惹的。其實(shí)也怪自己,一直沒有空把struts2的原理好好的看看,還以為跟以前的東西一樣呢。

          問題是這樣的,在action里定義了屬性之后,數(shù)據(jù)都是存在ValueStack里面的。如果你直接使用tag取的話就沒有問題。但是你想通過java代碼,用request取的話,這樣是取不出來的。

          今天終于發(fā)現(xiàn)了這個(gè)問題的原因。
          這些屬性可以通過request取,但是首先要去的ValueStack,然后從ValueStack里面把這個(gè)值取出來。
          如:
          ValueStack vs = request.getAttribute(struts.valueStack);
          然后根據(jù)屬性名稱,從vs中獲取這個(gè)對(duì)象值。
          vs.find("value");

          這樣就可以把數(shù)據(jù)取出來通過java代碼來操作了。否則只能使用struts2自帶的tag來運(yùn)行。

          這個(gè)是今天的一大收獲。

          posted @ 2009-08-04 15:52 風(fēng)人園 閱讀(1102) | 評(píng)論 (0)編輯 收藏

          jquery.treeview

          今天用到tree,試了下jqeury的這個(gè)插件,結(jié)果發(fā)現(xiàn)一個(gè)問題。
          效果是出來了,可是沒有單擊事件,這讓我們?cè)趺从冒 U媸羌{悶死了,看文檔也沒有這個(gè)說明,看demo里面也沒有這個(gè)例子。

          好像其他的官方插件也或多或少有這樣那樣的問題,看來官方的插件還需要努力更新啊。

          難道我要自己動(dòng)手完成這個(gè)東東了?

          js一直是我的軟肋,郁悶死。

          現(xiàn)在碰到復(fù)雜一點(diǎn)的js,根本沒轍。特別是現(xiàn)在oo版本的js,基本上屬于看不懂,看來我需要研究一下了。

          posted @ 2009-08-04 13:47 風(fēng)人園 閱讀(700) | 評(píng)論 (0)編輯 收藏

          hibernate annotion 注解放在屬性上或者方法上

          兩種方式都是可以,但是看人家的代碼,習(xí)慣將注解放于方法上,不知道有沒有什么好的地方?

          現(xiàn)在唯一發(fā)現(xiàn)的區(qū)別就是,@Transient非持久化域的不同。
          放在方法上,只需要標(biāo)記那個(gè)getter方法即可,可以沒有對(duì)應(yīng)屬性。

          如果放在屬性上,需要生成getter 和setter方法


          在實(shí)體對(duì)象中,可能存在很多非持久化方法,這種情況下
          注解置于屬性上,功能性get方法,可以沒有對(duì)應(yīng)屬性。
          注解至于方法上,直接使用@Transient。

          兩者基本上都一樣。
          只是在使用的時(shí)候不能混合使用

          posted @ 2009-08-04 09:54 風(fēng)人園 閱讀(1527) | 評(píng)論 (0)編輯 收藏

          Hibernate annotion配置

          在這里,記錄一下annotion在實(shí)際使用過程中一些常用的配置。

          1、一對(duì)多
          2、一對(duì)一

          常見異常及處理
          1、Could not determine type for: java.util.Set
          說不能找到這個(gè)類型,無法創(chuàng)建列
          原因:annotion不能同時(shí)放在屬性和方法上,要么都放在屬性上,或者都放在方法上

          posted @ 2009-08-04 08:52 風(fēng)人園 閱讀(438) | 評(píng)論 (0)編輯 收藏

          OperaMasks學(xué)習(xí)系列(三) 數(shù)據(jù)驗(yàn)證(原創(chuàng))

          1、簡(jiǎn)單驗(yàn)證
             
          • @Required. 聲明一個(gè)域或Bean屬性必須具有輸入值。

          • @ValidateDoubleRange. 檢驗(yàn)一個(gè)浮點(diǎn)數(shù)取值是否在指定范圍中。

          • @ValidateLongRange. 檢驗(yàn)一個(gè)整型數(shù)取值是否在指定范圍中。

          • @ValidateLength. 檢驗(yàn)一個(gè)字符串的長(zhǎng)度是否在指定范圍中。

          • @ValidateRegexp. 檢驗(yàn)一個(gè)字符串是否可以匹配指定的正則表達(dá)式。(OperaMasks提供了一個(gè)工具類org.operamasks.faces.validator.CommonRegexpPatterns,列出了一些常用的校驗(yàn)正則表達(dá)式)

          2、服務(wù)器端驗(yàn)證

          3、自定義驗(yàn)證錯(cuò)誤信息

          4、客戶端驗(yàn)證   
              設(shè)置form 的屬性:clientValidate="true"
              通過此標(biāo)簽自定義客戶端驗(yàn)證
              <ajax:clientValidator message="用戶名不能為w">
                  嵌入javascript代碼
              </ajax:clientValidator>

          posted @ 2009-06-17 13:32 風(fēng)人園 閱讀(334) | 評(píng)論 (1)編輯 收藏

          僅列出標(biāo)題
          共10頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
          主站蜘蛛池模板: 青阳县| 威信县| 通许县| 旬阳县| 乐至县| 乐清市| 大姚县| 来安县| 抚州市| 东平县| 刚察县| 北川| 孟连| 礼泉县| 游戏| 蒙自县| 田阳县| 焦作市| 如皋市| 灵寿县| 天柱县| 上蔡县| 遂川县| 新源县| 泽普县| 江安县| 玉环县| 贡觉县| 和平区| 龙州县| 荃湾区| 淮安市| 武夷山市| 正定县| 江阴市| 青田县| 禹城市| 开阳县| 昭平县| 安陆市| 三台县|