Jcat
          寵辱不驚,閑看庭前花開花落~~
          posts - 173,comments - 67,trackbacks - 0
          狀:剛配置好struts,可是DispatchAction怎么都不工作(Action可以工作),也不報錯
          原因:只引入了struts自身的jar,看一看release中lib下,還有不少非struts的jar,可以猜想這些都是DispatchAction所需要的,而Action不需要(以前以為這些沒用)。不報錯讓我很郁悶。



          狀:剛配置好struts,action可以工作了,就是不能正確的forward到jsp頁面,execute中加斷點,也不進入。
          原因:execute有兩個!!!HttpServletRequest vs ServletRequest,前者才是struts所使用的execute。



          狀:在web.xml里面設置好了

          <error-page>
          ????????
          <error-code>404</error-code>
          ????????
          <location>/404.jsp</location>
          </error-page>

          但當出現404錯誤時,并沒有顯示404.jsp這一頁,而是顯示browser提供的error report page

          原因:在客戶端瀏覽器如IE的internet選項高級屬性中默認使用“友好的http錯誤信息”,這樣會造成你的服務器是輸出你所定義的錯誤頁面,但到客戶端被IE這混蛋給覆蓋掉了。解決方案是你定義的錯誤頁面的大小必須大于512bytes,就不會被客戶端設置所影響了。



          狀:用hibernate訪問數據庫,可以insert,可以select,可以drop,就是不能update,而且沒有任何錯誤消息

          原因:
          <class name="com.verican.base.model.CatalogPO" table="sys_catalog" mutable="false">設置成true即可。
          (當mutable=false,卻又執行update操作時,hibernate至少應該提供警告消息告知一下才對,可惜沒有,所以很難發現)



          狀:
          ??????Javascript彈出窗口時,如果用的是相對路徑,形如javascript:void(window.open('../../test.html')),不同的瀏覽器的處理不同(因為js是瀏覽器處理的東西)。
          ??????比如,不是部署在根目錄下時(根目錄下又建了一個目錄):在Firefox下,是以服務器為視角,則../../即可;而在IE下,則是以瀏覽器為視角,則需要多加一級,如../../../
          ????????????
          解決:用絕對路徑 javascript:void(window.open('http://www.verican.com/test.html'));或者,用 <a target="_blank" href="../../test.html"> (因為這是服務器處理的東西,所以不管部署在哪里,相對路徑都是唯一確定的)



          狀:
          刷新的時候 1)拋出ServletException
          ?????????????????????2)The page cannot be refreshed without resending the information, Click Retry to send the information again.

          原因:Struts中redirect設置問題(具體原理以后再研究)

          解決:一般的,forward到一個具體的page,redirect=false;forward到另一個action,redirect=true
          ???????????
          <forward?name="add_item"?path="newsletter.add_item.page"?redirect="false"/>
          <forward?name="success"?path="/newsletter.do"?redirect="true"/>


          狀:

          save a form --> forward to list page --> refresh --> retry --> save the form again (error)


          原因:
          <forward?name="list"?path="ticket.list.page"?redirect="false"/>

          解決:一般的,從save一個表單后,應該forward到另一個action,且redirect=true(而不是另一個page,即便當前action里有這個page)。這樣可以保證不會通過刷新重復save數據。
          <forward?name="list"?path="ticket.do"?redirect="true"/>



          狀:
          ??????用Spring + Velocity發email,開始都好好的,也能現實圖片,但當加入某一幅圖片以后,無法正常顯示(得到一個頁面為空白的Email,雖然也有大小)。把圖片從bmp換到jpg,再換到gif,未果。減小圖片的尺寸、大小,未果。幾乎都要絕望了~~~

          原因:NOTE: Invoke addInline after setText; else, mail readers might not be able to resolve inline references correctly.(這是Spring API里的原話,NND)

          感受:
          ??????1.以前沒寫過發Email的程序,工作中用到了,照貓畫虎拿過來就用,也沒有仔細閱讀文檔,導致這次慘痛的教訓。
          ????? 2.Spring中這部分設計的也有問題,它在兩個表面上沒什么關系的方法之間,建立了順序上的依賴關系。這使得出現這種情況時,沒有任何線索。



          狀:
          遍歷List時,一調用remove就出錯,(錯誤的)代碼如下
          for?(Object?o?:?list)
          ????
          {
          ????????????list.remove(o);
          ????????}

          原因:ConcurrentModificationException,有remove操作時,不能用foreach循環

          解決:用傳統循環(看了傳統還是很有用的)
          for?(int?i?=?0;?i?<?list.size();?i++)
          ????
          {
          ????????????list.remove(i
          --);
          ????????}
          注意remove過需要 i--? (--i is wrong)



          狀:
          boolean?b?=?new?Integer(3)?==?new?Integer(3);?//false

          原因:其實是很簡單的問題,但是IDEA只會對String的 = = 做智能提示,注意即可。



          狀:
          org.hibernate.MappingException: Could not read mappings from resource: jcat/learn/mapping.xml
          ?
          開始以為路徑沒寫對,試驗了N中路徑的寫發后,還是不行。后來才發現是因為mapping.xml是空的。
          ?
          解決:給mapping.xml加上一個空殼就可以了(好歹空殼不等于空)
          ?
          <?xml?version="1.0"?encoding="gb2312"?>
          <!DOCTYPE?hibernate-mapping?SYSTEM?"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"?>

          <hibernate-mapping?default-lazy="false">

          </hibernate-mapping>
          ?
          NOTE:幾種路徑的寫法
          1. classpath:packagename/filename
          例子:在applicationContext.xml中注冊hibernate.cfg.xml
          <bean?id="GlobalHibernateSessionFactory"?class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
          ????????
          <property?name="dataSource">
          ????????????
          <ref?local="GlobalDataSource"/>
          ????????
          </property>
          ????????
          <property?name="configLocation">
          ????????????
          <value>classpath:hibernate.cfg.xml</value>
          ????????
          </property>
          </bean>

          2. packagename/filename
          例子:在hibernate.cfg.xml中注冊mapping.xml
          <mapping?resource="jcat/learn/hibernate_in_spring/orm.xml"/>


          狀:提交表單程序,加入了上傳文件的功能后,出現異常
          java.lang.IllegalArgumentException: Cannot invoke com.verican.newsadmin.form.TicketForm.setUploadFile - argument type mismatch

          解決:將表單聲明為mulptipart類型
          <html:form?action="/ticket"?enctype="multipart/form-data">
          ?????????
          <html:file?property="uploadFile"/>
          </html:form>



          狀:IE cannot open the Internet site file: ....
          <html>
          <head>
          ????
          <title></title>
          </head>
          <body>
          ????
          <span?id="TypeDes2"/>
          ????
          <script?type="text/javascript">
          ???????TypeDes2.innerHTML?
          =?"Test?Span";
          ????
          </script>
          </body>
          </html>

          解決:對于單標簽,瀏覽器找不到innerHTML屬性。改為雙標簽即可。
          <span?id="TypeDes2"></span>
          posted on 2006-07-25 13:11 Jcat 閱讀(779) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 博湖县| 青海省| 丹寨县| 肥乡县| 武乡县| 崇左市| 磐安县| 攀枝花市| 平陆县| 进贤县| 湘潭市| 临沭县| 奉化市| 繁峙县| 米泉市| 澄迈县| 罗定市| 团风县| 宝清县| 肃宁县| 太白县| 江北区| 克山县| 昌宁县| 山东省| 澳门| 泰安市| 四会市| 库伦旗| 海口市| 长白| 东山县| 同心县| 朝阳区| 长丰县| 磐安县| 扎赉特旗| 如东县| 桐庐县| 泰来县| 农安县|