JPractice

          JSF+Spring+Hibernate+MySQL 開發(fā)商務(wù)平臺實(shí)踐

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            12 隨筆 :: 0 文章 :: 20 評論 :: 0 Trackbacks

          2006年2月5日 #

          在JSF中,用Tiles或jsp:include將其他頁包含進(jìn)來的時候,被包含的頁面中,所有靜態(tài)HTML代碼都要用<f:verbatim></f:verbatim>括起來,否則就會出現(xiàn)布局錯位的問題,真是痛苦!JSF的這個弊端不知道要到什么版本才行解決!
          posted @ 2006-03-09 17:55 JPractice 閱讀(526) | 評論 (0)編輯 收藏

          JSF的東西本來就不好搞,加上Tiles就更麻煩了,特別是在頁面格式的布局方面,經(jīng)常出現(xiàn)一些莫名其妙的東西,花了不是時間,現(xiàn)在還沒有完全解決,但基本功能已經(jīng)可以進(jìn)行測試了:
          目前的功能有:信息發(fā)布、導(dǎo)航菜單、欄目維護(hù)、文章維護(hù)、后臺登錄,完成了Tiles的組裝,首頁靜態(tài)頁面的布局分割。現(xiàn)在美工方面進(jìn)一步加工一下,一個文章發(fā)布系統(tǒng)已具雛形,尚且叫它v0.1版吧:)

          另外需求稿方面已經(jīng)進(jìn)展到v0.7版本,現(xiàn)在這個剛有點(diǎn)形狀的文章發(fā)布系統(tǒng)是整個大系統(tǒng)的一小部分,不過功能雖少,但主要收獲是解決了一些JSF方面經(jīng)常遇到的問題。


          posted @ 2006-03-08 16:11 JPractice 閱讀(307) | 評論 (1)編輯 收藏

          <h:outputLabel id="" value="#{category.name}" />

          上面這行在用sun-ri的應(yīng)用中不會報錯
          但在MyFaces中就會報錯:
          原因就出在id="" 去掉就會好了

          description The server encountered an internal error () that prevented it from fulfilling this request.

          exception

          javax.servlet.ServletException: empty expr
          	javax.faces.webapp.FacesServlet.service(FacesServlet.java:121)
          	org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
          	com.bizcms.view.utils.SecurityFilter.doFilter(Unknown Source)
          

          root cause

          javax.faces.FacesException: empty expr
          	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421)
          	org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.dispatch(JspTilesViewHandlerImpl.java:233)
          	org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:219)
          	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
          	javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
          	org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
          	com.bizcms.view.utils.SecurityFilter.doFilter(Unknown Source)
          
          posted @ 2006-02-18 23:55 JPractice 閱讀(945) | 評論 (2)編輯 收藏

          一、Action Controller的Action方法中手工獲取請求信息
          ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
          HttpServletRequest request = (HttpServletRequest) context.getRequest();
          String email = request.getParameter("form2:email");

          二、保護(hù)/下面的jsp文件不被直接訪問
          在web.xml中加入:
          <security-constraint>
          <display-name>
              Prevent access to raw JSP pages that are for JSF pages.
          </display-name>
          <web-resource-collection>
              <web-resource-name>Raw-JSF-JSP-Pages</web-resource-name>
              <!-- Add url-pattern for EACH raw JSP page -->
              <url-pattern>/welcome.jsp</url-pattern>
              <url-pattern>/login.jsp</url-pattern>
              ......
          </web-resource-collection>
          <auth-constraint>
                <description>No roles, so no direct access</description>
          </auth-constraint>
          </security-constraint>

          三、加載國際化資源文件
          <f:view locale="#{facesContext.externalContext.request.locale}">
          <f:loadBundle basename="messages" var="msgs"/>

          /WEB-INF/classes目錄下,放messages_cn.properties,message_en.properties.....

          待續(xù)。。。

          posted @ 2006-02-16 16:22 JPractice 閱讀(437) | 評論 (0)編輯 收藏

          這兩天項目的進(jìn)度放慢了,有2、3天沒有寫了blog了,現(xiàn)在成功將Tinymce的HTML編輯器整合到項目里面,提供在線的頁面編輯功能,經(jīng)過測試,效果還是很不錯的,達(dá)到了預(yù)期的目標(biāo),接下來就是研究首頁菜單導(dǎo)航條的設(shè)計和Tiles和JSF的整合。。。
          posted @ 2006-02-13 09:35 JPractice 閱讀(810) | 評論 (1)編輯 收藏

          今天看到一則消息,說Borland公司打算出售整個IDE產(chǎn)品線!曾經(jīng)風(fēng)光無限的開發(fā)工具供應(yīng)商竟然走到今天這種地步,連自己的看家法寶都打算拋棄,真是感嘆啊!市場確實(shí)是無情的,手中沒有鎮(zhèn)山之寶,一直跟在微軟屁股后面走,始終都是受制于人,現(xiàn)在在開源IDE的沖擊下,最終還是難逃厄運(yùn)。不過我從.NET出來之后,就一直不看好Borland了,在夾縫中求生存還是難啊.
          posted @ 2006-02-09 21:09 JPractice 閱讀(348) | 評論 (2)編輯 收藏

          今天在跟客戶認(rèn)真地談了一次需求,雙方整理出一份需求稿v0.1版,將幾大功能版塊總體需求及部分細(xì)節(jié)、各版塊開發(fā)緊急程度、前期部分開發(fā)任務(wù)(有一小部分比較簡單的功能由于業(yè)務(wù)開展的需要)的時間進(jìn)度初步明確下來。開發(fā)團(tuán)隊現(xiàn)在有3人,正在物色一名美工,將來看情況擴(kuò)充一名開發(fā)人員。周6前的工作目標(biāo)就是進(jìn)一步跟客戶整理和確認(rèn)需求、相關(guān)開發(fā)規(guī)范資料的收集編寫、團(tuán)隊開發(fā)溝通平臺的準(zhǔn)備、確定同客戶的溝通機(jī)制、團(tuán)隊個人開發(fā)環(huán)境的準(zhǔn)備等等。

          posted @ 2006-02-08 23:58 JPractice 閱讀(308) | 評論 (0)編輯 收藏

          這本書是我今天在整理自己的書柜時找到的,01年買的了,一直沒看,今天翻出來瀏覽了一下目錄,主要是介紹小組團(tuán)隊開發(fā)的整個過程以及過程中涉及的計劃、溝通協(xié)調(diào)、進(jìn)度跟蹤、需求定義、小組設(shè)計、測試、維護(hù)等我們比較關(guān)心的問題,并提供了一些實(shí)際操作性很強(qiáng)的規(guī)范。個人感覺非常實(shí)用,所以給大家推薦一下:
          《小組軟件開發(fā)過程》 人民郵電出的
          《Introduction to the Team Software Process》

          posted @ 2006-02-08 00:45 JPractice 閱讀(454) | 評論 (1)編輯 收藏

          一個是維護(hù)欄目表的,目前只實(shí)現(xiàn)了簡單的增加功能,欄目表最難搞的是實(shí)現(xiàn)一對多的自身關(guān)聯(lián)(為了實(shí)現(xiàn)不受層次限制)。
          另外一個是初步研究了如何實(shí)現(xiàn)Html編輯器,能將編輯完的內(nèi)容存到表的字段中,就像在這里發(fā)表隨筆的功能;
          等這兩個功能進(jìn)一步完善后,就可以維護(hù)欄目和每個欄目下的內(nèi)容,實(shí)現(xiàn)欄目內(nèi)容的分類和在線維護(hù)

          <hibernate-mapping package=".........................">
            <class name="Category" table="cms_categories" lazy="false">
              <id name="id" type="long" column="CATE_ID">
                <generator class="identity"/>
              </id>
              <property name="name" type="string" column="CATE_NAME" length="60" not-null="true"/>
              <set
                 name="childCategories"
                 cascade="save-update"
                 inverse="true"
              >
                 <key column="CATE_CATEGORY_ID" />
                 <one-to-many class="Category" />
              </set>
              <many-to-one name="parentCategory" column="CATE_CATEGORY_ID" class="Category" cascade="none" />
            </class>
          </hibernate-mapping>
          另外哪位熟悉hibernate的朋友,幫我看看,上面是Category類的映射方法,不過當(dāng)我寫:
             Category category = new Category(categoryName);

             // find the new category's parent category object by the param parentCategoryId
             Category parentCategory = categoryDao.getCategory(parentCategoryId);

             if (parentCategory != null) {    
                category.setParentCategory(parentCategory);
                // parentCategory.getChildCategories().add(category);    ************
                categoryDao.save(category);
               ...............................


          *******行如果不注釋掉就會出Exception,哪位熟悉hibernate的朋友給指點(diǎn)一下
          posted @ 2006-02-06 00:37 JPractice 閱讀(355) | 評論 (3)編輯 收藏

          功能很簡單,在Mysql 5中建一個BizCms的DB,然后建一個CMS_SYSUSER的表,里面主要有id, name, password等幾個字段,然后利用jsf+spring+hibernate(3)寫一個根據(jù)用戶名、密碼登錄的小模塊,寫這個模塊花了半天加一個晚上,大部分代碼都寫得挺順,但是到最后出了點(diǎn)小問題,就是利用Hibernate 3從mysql表中檢索數(shù)據(jù)的時候,在hibernate的映射文件中,<class...>里面開始沒有加lazy="false",原來hibernate 2中記得好像缺省就是false,但在版本3中就出那個LazyInitialization的Exception,由于代碼測試還不是很熟(唉,要學(xué)的東西還很多!),搞了半天,編了一個小的java applaction來測試才發(fā)現(xiàn)那個Exception,不過還是體驗了Spring的強(qiáng)大,編寫那個小application還是很容易的,不過感覺JSF就不那么好測試了。最后經(jīng)過努力還是調(diào)試成功,也對整個應(yīng)用的分層設(shè)計有了更深的體會,今天總算有點(diǎn)收獲吧。

          今天要上班了(凌晨了),放完假后就不想每天都弄到凌晨才睡了。。。

          今天早上看了一下,exadel中包含的hibernate版本是3.1.0 alpha
          posted @ 2006-02-05 00:06 JPractice 閱讀(536) | 評論 (3)編輯 收藏

          主站蜘蛛池模板: 嘉黎县| 丹东市| 闻喜县| 砚山县| 临邑县| 鄂温| 宁波市| 舟山市| 富阳市| 江源县| 云霄县| 霍邱县| 乌拉特后旗| 慈溪市| 柳河县| 调兵山市| 曲阳县| 白河县| 贵定县| 绥化市| 景洪市| 青阳县| 水富县| 新余市| 南华县| SHOW| 肥城市| 九龙坡区| 浦东新区| 施甸县| 洛扎县| 丹凤县| 阿合奇县| 海门市| 克山县| 沧州市| 乌兰浩特市| 延寿县| 辽中县| 华坪县| 密山市|