天天看點

BSP和JSP裡的UI元素ID生成邏輯

CRM WebClient UI

WebClient UI渲染出來的DOM元素的這些C#_W#格式的id是在哪行ABAP代碼被生成出來的?

BSP和JSP裡的UI元素ID生成邏輯

參考我的部落格WebClient UI element ID generation logic

Hybris

既然是JSP,和同樣基于伺服器端渲染的BSP的套路一樣。Hybris的應用開發人員不用重複造輪子,直接在JSP頁面裡使用ycommerce标簽:

BSP和JSP裡的UI元素ID生成邏輯

ycommerce标簽實作如下。從注釋裡也能清楚看出這個JSP标簽的實作,為了確定id唯一,采用的是和CRM WebClient UI一樣的方式:内部維護一個計數器,每次生成元素後加1.

BSP和JSP裡的UI元素ID生成邏輯

計數器加一的代碼:

BSP和JSP裡的UI元素ID生成邏輯

等價于WebClient UI第16行代碼:

BSP和JSP裡的UI元素ID生成邏輯

JSP沒辦法直接被浏覽器執行,而是編譯成.class,最後浏覽器輸出的原生HTML代碼生成于這些.class:

BSP和JSP裡的UI元素ID生成邏輯

從以上介紹可以看出,SAP BSP和Java的JSP,頁面代碼均在伺服器端渲染。最近流行的單頁面應用Single Page Application,後端不再負責模闆渲染、輸出頁面工作,減少了對伺服器端的壓力。