實現bodytag介面
bodytag介面繼承了iterationtag介面。它提供了這樣一種功能,將標籤體的處理結果放到乙個緩衝區,在緩衝區內對結果在進行處理,而不是象tag或iterationtag介面將標籤體的處理結果直接傳送到輸出流。
另外,由於繼承了iterationtag介面,對標籤體結果的處理也可以迴圈進行多次。
在該介面中定義了兩個方法(setbodycontent()和doinitbody())和乙個整數常量(eval_body_buffered)。
setbodycontent()方法
完整寫法是:
public int setbodycontent(bodycontent);
該方法的典型實現是將bodycontent賦值給本地區域性變數以供後面使用。
doinitbody()方法
jsp引擎在呼叫完setbodycontent方法後會接著呼叫doinitbody方法。完整寫法是:
public void doinitbody() throws jspexception;
該介面的執行機制象前兩種介面一樣,先依次呼叫setpagercontext(),setparent(),例項變數的set***方法,dostarttag()。
這是dostarttag方法返回乙個常量(eval_body_include, skip_body或eval_body_buffered)。
如果返回的是eval_body_buffered,jsp引擎首先建立乙個bodycontent類物件。bodycontent類是jspwriter的子類,而且所有的write,print方法都被重寫。不再直接輸出到客戶端,而是輸出到該物件(緩衝物件)內部。
jsp引擎接著將該物件作為引數帶入到setbodycontent方法中,在執行完setbodycontent方法後,接著再呼叫doinitbody方法,此時並沒有對緩衝物件進行計算,只是給出乙個機會,對緩衝物件初始化。
接著,jsp引擎處理緩衝物件,並將結果再存在緩衝物件中。
再後來,doafterbody方法被呼叫,它將返回eval_body_again或eval_body_buffered用以指示緩衝物件需要迴圈計算,而返回skip_body則標明就此結束。
最後,呼叫doendtag方法,結束標籤處理。
其流程圖如下:
h5應用資料加密 H5定製開發方案
正文共計 815字預計 產品特性 快速迭代 h5常用於輕量級應用,例如 活動營銷頁面 拉新等,而這些相對開發成本比較低,也可滿足市場需求進行快速迭代。專屬方案 所想即所得,為客戶量身定製策劃方案 多種定製 提供活動營銷 商業 遊戲有效等多種定製 全新互動 互動性強,視覺效果佳,使用者的感官體驗好,可...
thinkPHP5 tablib標籤庫自定義方法
具體可以參照thinkphp library think template taglib cx.php這裡面的寫法 我在common模組下新建了乙個資料夾taglib,新建了乙個test.php檔案 use think template taglib class test extends tagli...
導覽系統定製開發 資料展示系統定製開發 巴彥縣
資料展示系統定製開發 巴彥縣 數字沙盤維護保養還要分二種狀況,其中乙個是純三維的數字沙盤型別,另外一類是含有實體模型沙盤模型的數字沙盤,接下來多 分別介紹這兩類數字沙盤的保養。關於純三維數字沙盤,這類沙盤模型是不用沙盤模型製作的,只必須維護保養一些硬體環境,例如投影儀,按技術專業方式開展維護保養。數...