1、從jsp注入到Action後臺的list集合失敗可能原因:
1)頁面採用<input name="xxxList[x].name" ....>
2)後臺Action中增加xxxList對象,裏面放置實體對象
3)xxxList的getter和setter方法
2、更新明細記錄時可以採用先全部刪除後插入
3、javascript 屬性查找鏈:自身活動對象>prototype原型對象>父類的活動對象 找不到返回undefined
4、閉包是通過在對一個函數調用的執行環境中返回一個函數對象構成的
5、dialog中獲取DOM或jQuery對象
dom: dialog.innerFrame.contentWindow.document.getElementById("id").value;
jQuery: dialog.innerFrame.contentWindow.jQuery("#id");
6、null和undefined區別
undefined是window的一個屬性,與NaN一樣;
null是對象引用類型,undefined是特殊類型
1)當屬性不存在或變量只有聲明沒有初始化時會是undefined
2)document.getElementById("notExistId"); => null
9、併發控制
後臺:保存後生成一個Map<clazzName, Map<eid, EntityVersion>> 的結構數據,第一層是類名,第二層是實體id,第三層是版本號,每次修改或刪除操作,都會查詢上面的那個Map中的版本號,是否與前臺傳來的版本號一致,不一致拋出異常給前臺;
前臺:使用自定義標籤當進入頁面時就從後臺查詢版本號放到頁面,以便表單提交後與後臺版本號比較
10、struts的token控制重複提交:
1)配置文件中配置對哪些方法進行控制;
2)頁面中加入<s:token>標籤,在一個頁面上打開一個Dialog,該dialog是另一個頁面,兩個頁面都有token控制的話,提交外面父頁面時struts會提示token不匹配,Session中以爲null;如果去掉dialog框中頁面中token標籤的話,提交dialog框中到後臺就會導致token參數找不到問題,即使用ajax也不行
解決方法:修改調用方法名字,使其不再匹配struts配置token規則,或者修改struts配置,一般採用重新加一個方法,避開struts配置的規則,在這個方法中再次調用剛纔調用的那個方法就不會有問題了。
public changeMethName() {
beforeCallMethod(); //這樣就不會被struts的token配置攔截,只攔截第一次訪問的方法
}
11、首字母大寫
StringUtils.capitalize("abc"); => "Abc"
12、Apache convention規約
constant的name從default.properity struts.convention規約
Action映射到jsp的規則
/webroot/${actionNamespace}/action名字中除去最後的Action的部分首字母小寫/方法名字以駝峯規則分割出多個詞,並已“-”分割
13、onunload、onbeforeunload
1)都是在刷新或關閉時調用
onbeforeunload在onunload之前執行,還可以阻止onunload的執行
2)可以放到body、frameset、window中
14、潤乾報表
1)對字段排序無效,使用select
原因:設置了多個排序select,色了傳統排序只能設置一個,並且是第一個
2)如何將參數表單和普通報表結合
3)打印報錯,表達式subList中參數類型錯誤,原因:數據庫連接錯誤
15、ie7 colSpan動態顯示失敗
1)修改colspan改爲colSpan,按照駝峯規則變換大小寫,全部小寫不行(已驗證)
2)<nobr>...</nobr>
3)設定寬度爲像素 width=100px;
說明:對於ie7/6中使用setAttribute時,key中要採用駝峯規則,否則失效
16、創建新的img對象時,要先對src賦值,後對width/height賦值纔會起效,否則圖片的本身大小會覆蓋
17、當系統時間被修改爲以前的某個時間時,MyEclipse中修改的文件不會同步到tomcat中,因爲會對比時間,保持tomcat中文件的修改時間最新,這是測試的時候將系統時間改爲了老時間後,忘記改回來,在修改代碼後發現修改沒有起效,這是真的就捉急了。
18、reload會使ie彈出提示框
解決方法:
1)window.location.href=window.location.href
2)採用submit方式(已驗證)
3)將form的post方式改爲get
19、reset類型的按鈕重置功能失效
原因:對於remove掉的輸入元素失效
table中隊width設置百分比是,一般留一個不設置width的td,讓瀏覽器自動計算
20、nowrap解決td中中文和英文換行
使用省略號解決文字超長
實例:
<td nowrap="nowrap">
<div style="overflow:hidden; width:50px; text-overflow:ellipsis">
<nobr>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</nobr>
</div>
</td>
21、給title換行
1)直接拼接到title的值,
或者
,使用js則需要使用replace("\n");
22、a標籤中onclick執行完後,最好return false; 否則默認事件會執行
23、a.href="#"與a.href="javascript:void(0)"區別
1)a.href="#"點擊鏈接後頁面會向上滾到頁首,#默認錨點爲#top
2)a.hfre=“javascript:void(0);” 頁面不動,什麼也不執行
說明:點擊連接後,不想是頁面滾動到野獸就用javascipt:void(0) 不要使用#,return false也有同樣的作用
23、word書籤可以在生成導出word文件時作爲標記點放值進去
oracle
1、“&”是特殊字符處理
方法一:set define off
set define off 則關閉該功能,"&"將作爲普通字符,如上例,最終字符就爲“SQL&Plus”
set define off關閉替代變量功能
set define on 開啓替代變量功能
set define * 將默認替代變量標誌符該爲"*"(也可以設爲其它字符)
方法二:在SQL語句中將'&'替換成chr(38),因爲chr(38)是'&'的ASCII碼
SQL> Select 'Tom' || chr(38) || 'Jerry' from dual;
方法三:分拆原來的字符串
SQL> Select 'Tom' || '&' || 'Jerry' from dual