要將程式碼從 ZUML 中抽離,最簡單的方法是將 zscript 寫在另外的 zs 檔,然後在 ZUML 中再做引用,方法跟在 HTML 中引用 js 檔的方法很像,例如分別寫了 test.zs 及 test.zul 並放在同一個資料夾中
test.zs
test.zul
然後執行 test.zul ,如此點上面的按鈕時就會呼叫寫在 test.zs 中的 fn()
但 zs 檔若是跟 zul 放在同一個目錄,那 Client 端就有機會直接 request 這個 zs 檔,且獲得它的原始內容,而若裡面又寫上一些機密內容的話,例如連接 DB 的帳號密碼,那就會非常的不妙了,所以我們最好是放在 Client request 不到的地方,在 JSP Web Application 中,WEB-INF 就是一個 Client 無法 request 的資料夾
所以假設我們將 zs 檔放在 WebApp/WEB-INF/zs/ 之下,而 zul 放在 WebApp/zul/ 內,那麼 zul 在引用 zs 檔的路徑就要改成下面這樣
也就是用 Server 端相對路徑的方式即可
當然,如果是用 Class 檔,就不會有這個疑慮,只是這不在本篇探討的範圍
--gs--
{ZK}
test.zs
test.zul
然後執行 test.zul ,如此點上面的按鈕時就會呼叫寫在 test.zs 中的 fn()
但 zs 檔若是跟 zul 放在同一個目錄,那 Client 端就有機會直接 request 這個 zs 檔,且獲得它的原始內容,而若裡面又寫上一些機密內容的話,例如連接 DB 的帳號密碼,那就會非常的不妙了,所以我們最好是放在 Client request 不到的地方,在 JSP Web Application 中,WEB-INF 就是一個 Client 無法 request 的資料夾
所以假設我們將 zs 檔放在 WebApp/WEB-INF/zs/ 之下,而 zul 放在 WebApp/zul/ 內,那麼 zul 在引用 zs 檔的路徑就要改成下面這樣
也就是用 Server 端相對路徑的方式即可
當然,如果是用 Class 檔,就不會有這個疑慮,只是這不在本篇探討的範圍
--gs--
{ZK}
沒找到你要的東西嗎?歡迎留下你的問題!若是我知道的,我會盡力的回答。
0 意見:
張貼留言
廣告訊息會被我刪除