癥

狀:剛配置好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>?
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 閱讀(771)
評論(0) 編輯 收藏 所屬分類:
Java