J2EE劍俠行

          直覺我的J2EE應用生涯,打造我心中的一把利劍。

          常用鏈接

          統(tǒng)計

          技術鏈接

          最新評論

          2006年9月5日 #

          找到一個好用的UML建模工具-argouml

           很不錯的一個UML建模工具-argouml
               argouml下載地址
               我一眼就看上他的原因是:生成的用例和包圖可能直接生成JAVA代碼,而且準備無誤,這正是我要找的。
               我想:以后使用一些框架的話,可能由PD生成一些實體,然后Hibernate生成pojo等,加入到argouml,然后根據(jù)一個框架的特性生成一些包 和類.就等于詳細設計了吧.應該來說是比詳細設計還實用的東西.總比哪些WORD文檔好吧.還有讓人看不懂的概要設計.
              我想從技術出發(fā),這個是一條比較適用的路子.下班了.我明天將會匯報一下我使用的情況和一些范例.
              反過來又想像.這好象是一個組合的腳手架.好象ROR的零星操作步驟.應該學習.ROR畢竟是一個新生事物,JAVAEYE的推廣也需要一個時間.如果像我這樣的打工,混口飯吃的人還是專心的研究J2EE好一點.否則明天就沒有飯吃了.

              呵呵.我的文章可被JAVAEYE收回到水貼里了,可能自己的能力不如人吧,好好學習,天天向上,如果看客有什么好的工具和軟件生產(chǎn)思路,可以共同交流。

          posted @ 2007-06-20 13:29 @家軍 閱讀(1850) | 評論 (1)編輯 收藏

          ROR:習慣約定優(yōu)于配置(學習ROR的第一天)

          今天學習了一下ROR,有一些學習經(jīng)驗東西要與大家分享。
          給ROR加一個座右銘--------狹窄心腸的日本產(chǎn)物。
          首先,不要一個一個的下載Ruby,Rails,建議使用一鍵安裝,下載地址如下:
          InstantRails-1.3-win
          版本說明:ruby 1.8.4 (2005-12-24) [i386-mswin32]
          其次,下載一個目前為止比較好的一個ROR的實踐工具:RadRails
          下載地址:radrails-0.7.1-win32
          接下來,設置一下Radrails的環(huán)境
          1)、Windows/perferences/Ruby/Installed Inteperters/ ->add ruby所在路徑:比如D:\InstantRails\ruby\bin\ruby.exe
          2)、Windows/perferences/Rails/Configuration ->Rails path:比如D:\InstantRails\ruby\bin\rails
          ->Rake path:比如D:\InstantRails\ruby\bin\rake 絕不是bat/cmd
          ->mogrel path:比如D:\InstantRails\ruby\bin\mongrel_rails絕不是bat/cmd

          有了如上的配置后,就只需要和在JAVA當中ANT一樣使用。(成功用過APPFUSE的人就不用害怕了)

          看看日本人寫的第一步:
          1),在RadRails中創(chuàng)建一個Rails Project,怎么樣會出來一堆的東東。
          2),進入DOS命令吧,后面的工序都是這樣的,好象買了海爾的洗衣機,第一次是送貨、第二次是用戶回訪,第三次是.....
          進入到你的項目處,運行ruby script\generate controller MyTest,
          則得到的服務如下:
          exists app/controllers/
          exists app/helpers/
          create app/views/my_test
          exists test/functional/
          create app/controllers/my_test_controller.rb
          create test/functional/my_test_controller_test.rb
          create app/helpers/my_test_helper.rb
          修改一下my_test_controller.rb

          代碼
          ?????? class ?MyTestController? < ?ApplicationController
          ??????def?index
          ????????render_text?
          " Hello?world!! "
          ??????end?
          ??????end

          在瀏覽器里輸入:http://127.0.0.1:3000/my_test/
          會出現(xiàn) Hello world!!字樣,
          不過有意思的是你可以輸入:http://127.0.0.1:3000/My_test/
          http://127.0.0.1:3000/My_Test/
          http://127.0.0.1:3000/my_Test/
          都可以得到這個值,可能沒有JAVA哪樣嚴格吧。
          3)、還有對數(shù)據(jù)庫的操作,要配置一個database.yml(好象Log4j的東東)
          4)、創(chuàng)建數(shù)據(jù)庫表的時候只能夠使用復數(shù)起名,比如User就不行,只能夠起Users
          下面只要執(zhí)行幾個命令就可以使用增刪改查了。
          如下是我的操作,下班了,就不多寫了,例子能夠說明一切問題:
          代碼
          ?1?E:\RORProject\demo>ruby?script/generate?model?user
          ?2?
          ?3???????exists??app/models/
          ?4?
          ?5???????exists??test/unit/
          ?6?
          ?7???????exists??test/fixtures/
          ?8?
          ?9???????create??app/models/user.rb
          10?
          11???????create??test/unit/user_test.rb
          12?
          13???????create??test/fixtures/users.yml
          14?
          15???????exists??db/migrate
          16?
          17???????create??db/migrate/001_create_users.rb
          18?
          19?E:\RORProject\demo>ruby?script/generate?controller?user
          20?exists?app/controllers/
          21?exists?app/helpers/
          22?create?app/views/user
          23?exists?test/functional/
          24?create?app/controllers/user_controller.rb
          25?create?test/functional/user_controller_test.rb
          26?create?app/helpers/user_helper.rb
          27?

          修改user_controller.rb如下:
          代碼
          1????class?UserController?<?ApplicationController
          2????????scaffold:user
          3????end

          最后你的瀏覽器當中輸入:http://127.0.0.1:3000/user/list,就包括了對數(shù)據(jù)庫表的四個操作.當然你也可以自己定義四個操作的任意一種.
          最后總結:
          ROR可能是敏捷開發(fā)的一個好實踐,但是我覺得他完成復雜應用進不會有大做為,而至于這一點還需要再做探究。不過現(xiàn)階段最好的需求就是能夠給用戶快速的寫出一個不完整的DEMO,這一點為以后打單取得主動。

          posted @ 2006-09-29 11:47 @家軍 閱讀(1998) | 評論 (1)編輯 收藏

          三個JAVA文件完成你的MVC應用

               摘要: 只需要你三個JAVA類和兩個配置文件,就可以完成你的MVC應用,我們就做一個示例吧。本文以一個登錄為例。第一個JAVA文件Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**======================================...  閱讀全文

          posted @ 2006-09-29 11:43 @家軍 閱讀(1903) | 評論 (3)編輯 收藏

          struts標簽,請你走開(系列一)

          在項目開發(fā)的很多時候,用戶需要更友好,更容易理解的操作界面,而為了能夠達到這種表現(xiàn)界面,struts標簽顯得力不從心,本人經(jīng)過幾個項目的開發(fā)當中 逐漸的擯棄了struts標簽,而由JSTL來做為JSP頁面的表達者。
          struts標簽之死穴一 不支持嵌套
          看看這種常見的需求吧。一個用戶隸屬于一個職能部門,比如
          項目要求 職能部門有五個(亂寫的)
          1、企劃部
          2、網(wǎng)絡集成部
          3、行政部
          4、營銷部
          5、產(chǎn)品部
          項目要求 一共有二個員工
          1、張三 隸屬于行政部
          2、李四 隸屬于營銷部
          而你想把張三和李四都列表出來,顯示為如下:
          姓名 部門名稱
          張三 行政部
          李四 營銷部
          而且還需要用戶的列表鏈接到修改頁面當中(假如只修改部門)應該如何做呢。
          在使用struts標簽是很難做到的,除非你非常不在意內存的使用(亂寫技術性代碼)
          看看JSTL是如何做的吧。
          從STRUTS的ACTION當中加載兩個對象

          List?GetAllDept? = ?UserDAO.GetAllDept(); // 取得所有部門

          List?GetALLUser?
          = ?UserDAO.GetAllUser(); // 取得所有用戶

          request.setAttribute(
          " View_Dept " ,?GetAllDept);

          request.setAttribute(
          " View_User " ,?GetALLUser);
          在頁面當中加入對JSTL的引用
          <%@?taglib?uri="http://java.sun.com/jsp/jstl/core"?prefix="c"%>

          然后寫代碼如下:
          <table>

          <tr>

          <td?align="center">

          <a?href="User.do?method=EditUser&UserId=<c:out?value='${View_User.UserId}'/>">

          <c:out?value="${View_User.UserName}"?/>?</a>

          </td>

          <td?align="center">

          <c:forEach?items="${View_Dept}"?var="View_Dept">

          <c:if?test="${View_User.Dept.DeptId==View_Dept.DeptId}">

          <c:out?value="${View_Dept.DeptName}"?/>

          </c:if>????????????????????????????

          </c:forEach>

          </td>

          </tr>

          </table>

          其中View_User.Dept.DeptId表示USER表與DEPT表的一個關系(外鍵)
          你就可以看到所顯示的列表了。

          還有如果在修改用戶時,則也與上面的差不多,首先在ACTION當中加入:

          String?ModifyUserId?=?request.getParameter("GroupUserId");

          if?(ModifyUserId?==?null?&&?ModifyUserId.equals(""))?{

          //這是出錯處理

          request.setAttribute(
          "UserMsg",?"User.ValidateUser");

          return?mapping.findForward("Fail");

          }

          DynaValidatorForm?UserActionForm?
          =?(DynaValidatorForm)?form;

          User?user?
          =?UserDAO.GetUser(ModifyUserId);????????

          List?GetAllDept?
          =?UserDAO.GetAllDept();//取得所有部門

          request.setAttribute(
          "View_Dept",?GetAllDept);

          UserActionForm.set(
          "User",?User);
          然后頁面當中顯示如下(部門為LISTBOX),例子當中只顯示部門
          <html:select?property="DeptAsString">????????????

          <c:forEach?items="${View_Dept}"?var="View_Dept">????????

          <c:choose>????????????????????????

          <c:when?test="${User.Dept.DeptId==View_Dept.DeptId}">

          <option????value="<c:out?value='${View_Dept.DeptId}'?/>"selected>????

          <c:out?value="${View_Dept.DeptName}"?/>????????????

          </option>????????????????????????????

          </c:when>????????????????????????????

          <c:otherwise>????????????????????????

          <option?value="<c:out?value='${View_Dept.DeptId}'?/>">????????

          <c:out?value="${View_Dept.DeptName}"?/></option>????????

          </c:otherwise>????????????????????????

          </c:choose>

          </c:forEach>

          </html:select>

          可以看到HTML的SELECT有一個DeptAsString,你可以在FORM當中指定一個STRING的FORM屬性。
          這樣用戶的要求就可以完成了。
          本次只說明方法,而代碼沒有經(jīng)過測試。希望大家多多觀注我的BLOG,下一次將臭罵ACTIONFROM不支持的DATE類型及解決方法。

          posted @ 2006-09-25 16:36 @家軍 閱讀(451) | 評論 (0)編輯 收藏

          用二維數(shù)組管理好你零亂的狀態(tài)、分類和其它常用選項

               摘要: 在大家的編碼過程當中,有沒有遇到過這么一種情況,很多零亂的狀態(tài)、分類和其它常用選項常常是定義死了。但是沒有一個完整的東東來約束他,在每個模塊當中使用相關的信息時,往往重新COPY一次,或者COPY過來修改一次。如果多人協(xié)作的話,務必會讓代碼變的零亂、不好管理等。
          本次主要是把一些靜態(tài)的分類、狀態(tài)或者其它常用選項使用二維數(shù)組管理起來。如果你是一個使用JSTL或者STRUTS做前臺表現(xiàn)的話,你就更應該好好關注了.......  閱讀全文

          posted @ 2006-09-05 13:31 @家軍 閱讀(1281) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 中江县| 黑水县| 盘锦市| 长泰县| 彰武县| 雷州市| 奉节县| 彭阳县| 镇坪县| 靖远县| 手机| 金秀| 晴隆县| 南澳县| 太和县| 沭阳县| 隆林| 柳州市| 灵寿县| 海南省| 嵊泗县| 九龙城区| 资溪县| 霸州市| 钟山县| 延边| 大田县| 潮州市| 工布江达县| 克拉玛依市| 沁源县| 建湖县| 宁南县| 福鼎市| 大方县| 威远县| 武汉市| 同江市| 嫩江县| 墨玉县| 剑河县|