JavaServer Faces Study

          JSF的一些學習經(jīng)驗與大寫分享

          統(tǒng)計

          留言簿(1)

          閱讀排行榜

          評論排行榜

          2008年2月16日 #

          Hibernate查詢,無數(shù)據(jù)正常,有數(shù)據(jù)出現(xiàn)java.lang.NullPointerException 異常

          現(xiàn)象
            在使用JSF+Spring+Hibernate時,執(zhí)行多對一查詢時,出現(xiàn)異常!代碼如下:

            Hibernate影射文件:
           
          <hibernate-mapping>
              
          <class name="com.jsfStudy.db.bo.TbPackinginfo" table="tb_packinginfo" catalog="danzhen">
                  
          <id name="piIdN" type="integer">
                      
          <column name="pi_id_N" />
                      
          <generator class="native" />
                  
          </id>
                  
          <many-to-one name="tbMakemxd"
                      
          class="com.jsfStudy.db.bo.TbMakemxd" fetch="select">
                      
          <column name="pi_mxdId_N" />
                  
          </many-to-one>
                  
          <property name="piTaskIdC" type="string">
                      
          <column name="pi_taskId_C" length="10" unique="true"></column>
                  
          </property>

                     ...

                 </class>
          </hibernate-mapping>

            java文件:
              public TbPackinginfo findByMxdNo(String mxdNo) throws DataAccessException{
                      List list
          =getHibernateTemplate().find(Constants.TBPACKINGINFO_FINDBYMXDNO,mxdNo);
                      Iterator it
          =list.iterator();
                          TbPackinginfo pack
          = new TbPackinginfo();
                      
          if(it.hasNext()){
                              pack
          =(TbPackinginfo) it.next();
                          }

                      
          return pack;
              }
            如果數(shù)據(jù)庫中沒有記錄,則一切正常;如果數(shù)據(jù)庫中有記錄,則出現(xiàn)java.lang.NullPointerException 異常。
            java.lang.NullPointerException at org.hibernate.tuple.AbstractEntityTuplizer.createProxy

          解決方式:
            經(jīng)在網(wǎng)上搜索后,終于找到解決的方法,現(xiàn)在與大家一起分享!
            1、更改加載方式為立即加載!即在多對一的影射中增加: lazy="false"
           
          <hibernate-mapping>
              
          <class name="com.jsfStudy.db.bo.TbPackinginfo" table="tb_packinginfo" catalog="danzhen">
                  
          <id name="piIdN" type="integer">
                      
          <column name="pi_id_N" />
                      
          <generator class="native" />
                  
          </id>
                  
          <many-to-one name="tbMakemxd"
                      
          class="com.jsfStudy.db.bo.TbMakemxd" fetch="select"lazy="false">
                      
          <column name="pi_mxdId_N" />
                  
          </many-to-one>
                  
          <property name="piTaskIdC" type="string">
                      
          <column name="pi_taskId_C" length="10" unique="true"></column>
                  
          </property>

                     ...

                 </class>
          </hibernate-mapping>

            或者
           
             2、升級cglib_2.1.3.jar至cglib_2.2.jar;
              cglib_2.2_beta1.jar文件下載地址:
              http://sourceforge.net/project/showfiles.php?group_id=56933&package_id=98218&release_id=419752

          posted @ 2008-02-17 20:58 Yangjm 閱讀(1369) | 評論 (0)編輯 收藏

          JSF頁面中如何彈出對話框

          問題:
            在JSF頁面中,在觸發(fā)一個動作之前彈出一個確認對話框(例如:刪除一條記錄,取消編輯)。
          解決方式:
            使用JavaScript中的confirm()方法實現(xiàn)!
            如果有更好的方式,希望能夠分享!
          實現(xiàn):
            1、對于<h:commandLink>組件: 
             
          <h:commandLink action="#{bookingShip.affirmBook}" 
                onclick
          ="if (!confirm('#{msgs.confirm_areYouSure}')) return false;">
               
          <h:outputText value="#{msgs.button_submit}" rendered="#{task.mxdStateN<1}"/>
          </h:commandLink>

            上述代碼中:#{msgs.confirm_areYouSure},在資源文件中為:“您確認這樣做嗎?”
            解析成HTML后:
           
          <a href="#" onclick="
                  
          var a=function(){
                       if (!confirm('您確認這樣做嗎?')) 
                            return false;
                   };
                   var b=function(){
                       if(typeof jsfcljs == 'function'){
                           jsfcljs(document.forms['j_id_jsp_1722095761_5'],'j_id_jsp_1722095761_9:3:j_id_jsp_1722095761_45,j_id_jsp_1722095761_9:3:j_id_jsp_1722095761_45','');
                       }
                       return false
                   };
                  return (a()==false) ? false : b();
          ">
              提交
            </a>
            
            屏幕顯示:
           

            2、對于<h:commandButton>組件:
           
          <h:commandButton onclick="if (!confirm(#{msgs.confirm_areYouSure}')) return false"/>
            在這里的commandButton被解析成了一個提交按鈕。如果javaScript返回true值這個表單會被提交,如果返回false將會忽略表單的提交。

          posted @ 2008-02-16 10:15 Yangjm 閱讀(2785) | 評論 (0)編輯 收藏

          開張了

              使用JSF,是個新手!
              希望能夠?qū)⒃趯W習使用的過程中,遇到的一些問題及解決的方法與大家一起共享!
              在嘗試使用JSF的過程中,還使用了以下一些技術(shù)!
              Spring,Hibernate,Ajax4JSF,MySQL   

          posted @ 2008-02-16 09:50 Yangjm 閱讀(174) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 宣武区| 四平市| 罗山县| 临夏县| 乌兰县| 新平| 甘肃省| 苏尼特右旗| 阜平县| 抚顺县| 临湘市| 灵寿县| 澳门| 福建省| 宁河县| 锡林郭勒盟| 平阳县| 宜黄县| 皋兰县| 罗平县| 巴南区| 沧源| 蓬溪县| 普格县| 广宗县| 双城市| 琼海市| 南和县| 耒阳市| 布尔津县| 福鼎市| 马龙县| 呼图壁县| 鄂尔多斯市| 浮山县| 垣曲县| 西峡县| 延津县| 德昌县| 高陵县| 镇巴县|