跳到主要內容

發表文章

目前顯示的是 9月, 2012的文章

除錯 - java.lang.IllegalStateException: getOutputStream() called

今天碰上的這個錯誤訊息是在JSP頁面發生 ServletResponse.getOutputStream() ServetResponse.getWriter() 這兩個方法都會有可能在JSP輸出頁面內容的時候被調用 當其中一個方法被調用過後,再呼叫另一個方法就會報錯誤 解決的方法不外如下: out.clearBuffer();                           //清除buff out = pageContext.pushBody();     //更新out的內容

範例 - JavaScript 存取 Radio Button

簡單來說就是逐一比對相同name屬性的input控制項 HTML part: < form id = "demoForm" method = "post" action = "..." >      < input type = "radio" name = "statisticType" value = "region" checked = "checked" /> 依地區      < input type = "radio" name = "statisticType" value = "time" /> 依時間 < br /> </ form > JavaScript part: var sType; var demo = document.getElementById("demoForm"); for (var i = 0; i < demo.statisticType.length; i++) {     if (demo.statisticType[i].checked) {         sType = demo.statisticType[i].value;         break;     } } alert(sType);

Java String型別筆記

1.System.out.printf()是從C那邊取得的方法    String demoStr = "a %s boy which is %d feet height";    System.out.pintf(demoStr, "litle", 15);    字串中的%s,%d 分別會被替換成字串little、數值15    String.format()方法具有相同的使用方式及效果    例如:string temp = String.format(demoStr, "litle", 15);    以下為常用替換表示,大小寫區別在輸出的字串以大寫或小寫輸出    %%  -            用來在字串中表示%    %d  -             以10進位整數格式輸出,可用於byte、short、int、long    %f  -              以10進位浮點數格式輸出,可用於float、double、Float、Double、BigDecimal    %e、%E  -    以科學記號浮點數格式輸出                         %e指輸出格式遇到字母以小寫表示,%E則為以大寫表示    %x、%X  -   以16進為整數格式輸出    %s、%S  -   以字串格式符號輸出    %c、%C  -   以字元符號輸出    %b、%B  -   輸出blloean值    另一個較常見的替換輸出的需求則是在文字左側補上 0    例如月份可能不想用 2016/1 而是想用 2016/01    此時可以直接用 String.format("%0 2 d", number); 這樣的方式處理,上色處為0的位數    上面那行如果輸入數字1會吐字串01回來,數字11則吐字串11 2.String以+運算符大量連結字串時常會被詬病效率低的因素    在串聯字串相當簡單的情況下,使用String是可以接受的方法    例如:String temp = "aaa" + "bbb" + "ccc";    此時使用+運算符

解讀JavaScript的匿名函式寫法

參考文章 滿多的情況下我們會看到下面這一種寫法 (function(m) {     alert(m); })("Hello"); 解讀方式是 ( 實際上執行的function內容 )( 參數 ); 等同於下面這段 var x = function(m) { alert(m); }; x("Hello"); 或是更普遍的寫法 function y(m) {     alert(m); } y("Hello"); 以上三種寫法結果相同,差別在於第一種寫法不會留下任何函數或變數 對於一次性的動作來說,可以做到真正的船過水無痕 至於在jQuery Plugin開發時,習慣上會寫成以下的格式 (function($) {     //Plugin可以放心地用$代替jQuery     //不必擔心網頁可能被設了jQuery.noConflict()     //將$符號保留給其他Javascript Library使用 })(jQuery); 另外還有細節需要注意 有時候會看到傳入 "window" 作為匿名函式的參數 (function(window){        ... // original code })(window); 這是因為JavaScript的全域變數及函式是掛在 window 這個物件底下 如果要在函式中使用全域變數或全域函式 JavaScript 的找尋方法是 區域 -> 找不到再找外層 -> 找外層loop -> window 如果將 window 物件作為函式的參數引入,window物件就變成了函式的區域變數之一 這樣就省略了中間那些 "找不到,再往外一層找" 的過程 多少能提升一些效率