JavaServer Faces Study

          JSF的一些學習經驗與大寫分享

          統計

          留言簿(1)

          閱讀排行榜

          評論排行榜

          2008年2月17日 #

          Hibernate查詢,無數據正常,有數據出現java.lang.NullPointerException 異常

          現象
            在使用JSF+Spring+Hibernate時,執行多對一查詢時,出現異常!代碼如下:

            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;
              }
            如果數據庫中沒有記錄,則一切正常;如果數據庫中有記錄,則出現java.lang.NullPointerException 異常。
            java.lang.NullPointerException at org.hibernate.tuple.AbstractEntityTuplizer.createProxy

          解決方式:
            經在網上搜索后,終于找到解決的方法,現在與大家一起分享!
            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)編輯 收藏

          2008年2月16日 #

          JSF頁面中如何彈出對話框

          問題:
            在JSF頁面中,在觸發一個動作之前彈出一個確認對話框(例如:刪除一條記錄,取消編輯)。
          解決方式:
            使用JavaScript中的confirm()方法實現!
            如果有更好的方式,希望能夠分享!
          實現:
            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 閱讀(2784) | 評論 (0)編輯 收藏

          開張了

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

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

          僅列出標題  
          主站蜘蛛池模板: 彭泽县| 米脂县| 怀柔区| 陇川县| 陈巴尔虎旗| 涿鹿县| 肥东县| 凌云县| 临洮县| 桐城市| 蛟河市| 阿鲁科尔沁旗| 阿拉善右旗| 凌云县| 合川市| 上高县| 丹东市| 昔阳县| 策勒县| 永宁县| 杂多县| 会东县| 崇义县| 东丽区| 广宁县| 云梦县| 凌海市| 迁安市| 玉山县| 新乐市| 资溪县| 泾阳县| 海伦市| 威海市| 旬阳县| 高雄县| 泰安市| 宜都市| 平果县| 韶关市| 孝感市|